Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2882 connectés 

  FORUM HardWare.fr
  Programmation

  Visual C++ & SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Visual C++ & SQL

n°17700
smax
Posté le 08-03-2001 à 15:44:49  profilanswer
 

Comment faire pour inclure des requetes SQL dans
un code en Visual C++.
 
Si on utilise le support base de donnees dans appwizzard,
tout ce qu'il permet c'est de circuler entre les
enregistrements, mais pas de faire des requetes precises.
 
Merci
A++


---------------
Avoir un arbre dans son jardin n'empêche en rien de se promener en forêt.
mood
Publicité
Posté le 08-03-2001 à 15:44:49  profilanswer
 

n°17722
n0mad
inscrit au XXe siècle
Posté le 08-03-2001 à 17:33:15  profilanswer
 

Pour pouvoir faire des requetes SQl dans un prog en VC++, tu dois passer ou par ODBC ou par DAO.
 
Tu veux acceder à quelles bases de données ?
 
Si tu passes par ODBC, tu as la classe CDatabase qui permet de te connecter à une DSN et ensuite de faire des requetes SQL.
 
Si tu passe par DAO, utilises la classe CDAoDatabase.


---------------
Pipiru piru piru pipiru pi
n°17823
smax
Posté le 09-03-2001 à 13:06:29  profilanswer
 

C'est une base de données Acces 2000.
 
Ce que je voudrais, c'est les lignes de code pour
se connecter à la base de données et effectuer une requete,
comme en java par exemple :
 
String url="jdbc:odbc:Biblio";  
try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
   con=DriverManager.getConnection(url,"","" );
}catch(Exception e){
   System.out.println(e);
   try{
      con.close();
   }catch(SQLException se){
      se.printStackTrace();
   }
   System.exit(1);
}
 
ResultSet result=sttm.executeQuery(sqlRequete);
try{
   con.close();
}catch(SQLException e){
   e.printStackTrace();
}
 
 
Exactement la meme chose, mais en C++


---------------
Avoir un arbre dans son jardin n'empêche en rien de se promener en forêt.
n°17824
jupiler
Un cousin...
Posté le 09-03-2001 à 13:07:46  profilanswer
 

à priori, travailler d'un produit MS à un autre, ca doit pas être trop dur. Vérifie que les drivers ODBC sont installés.


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°17828
smax
Posté le 09-03-2001 à 13:15:16  profilanswer
 

Java c'est du M$ ???
J'croyais que c'était du Sun.
Putain ca va trop vite l'informatique,
y se passe des trucs ....
 
Sinon pas soucis pour les drivers,
en java ça marche nickel.


---------------
Avoir un arbre dans son jardin n'empêche en rien de se promener en forêt.
n°17840
jupiler
Un cousin...
Posté le 09-03-2001 à 14:11:57  profilanswer
 

euh je parlais de Visual C++. C'est bien ca qui t'interesse non?


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°17843
Roswell_
Posté le 09-03-2001 à 14:15:01  profilanswer
 

oui, c'est du C++ qu'il veux il a juste donné du code java en exemple.
Ca m'interrese aussi si on peut se passer des mfc.


---------------
http://www.cheata.net le site qui vous donne la banane!
n°17907
ragefan
Posté le 09-03-2001 à 18:03:10  profilanswer
 

Je sais inclure des bd access 2000 sous visual en mfc , c est tout con ..
totu d abord , tu te fou du wizard qui sert a rien !
Ensuite , tu parametre ton driver ODBC correctement puis
tu ajoutes une classe a ton projet qui derive de CRecordSet
tu la fait pointer vers ta base de donnée (tu es guidé ..)
Ensuite , tu chois la table que tu veux dans ta bd access (si tu en a plusieurs) (i lfaut une classe qui derive de Crecordset par table !)
puis dans ton code tu fais :
 
Ctaclasse objetdemaclasse;
objetdemaclasse.Open(CRecordSet::Snapshot,ta requete SQl entre "" )
La , l objet contient le resultat de ta requete. Ensuite , tu n a plus que parcourir ta base resultat avec objetdemaclasse.movenext() (cf aide de visual ...)
 
pour recuper un champ : objetdemaclasse.m_nomdelatribut !!
 
Voila

n°17943
n0mad
inscrit au XXe siècle
Posté le 10-03-2001 à 00:15:34  profilanswer
 

ragefan> C'est effectivement une bonne technique pour lire des records mais je crois qu'on ne peut pas faire de "INSERT INTO matable etc..." directement.
 
Si tu utilises une base Access, tu utilises DAO, c'est le plus simple mais tu restes propriétaire de M$.
 
Tu fais par exemple :
 
// début :
CDaoDatabase maBase;
CString commandeSQL = "INSERT INTO maTable (pk) values (1)"; // par exemple
 
maBase.Open("c:\\monchemin\\nomdeBase.mdb" );
maBase.Execute(commandeSQL);
maBase.Close();
// fin
 
et c'est tout.
 
Ciao


---------------
Pipiru piru piru pipiru pi
n°17948
xilebo
noone
Posté le 10-03-2001 à 00:23:55  profilanswer
 

Y a quelqu'un qui pourrais me dire comment attaquer une base de données Oracle en utilisant CDatabase ( si c'est possible).
 
Sinon en ce qui concerne access , effectivement en utilisant DAO , c'est on ne peut plus simple.
 
Tu utilises un objet CDaoDatabase , tu utilises open pour ouvrir la base et close pour la fermer.
 
Si tu veux faire une requete qui entraine une modif, tu utilises la fonction CDaoDatabase::Execute(... )
 
Si tu veux faire un Select, il faut utiliser un objet CDaoRecordset que tu attaches à ton objet CDaoDatabase, tu utilises la fonction CDaoRecordset::Open(...) pour lancer la requete, la fonction MoveNext() pour passer à la ligne suivante , et la fonction GetFieldValue(num) pour accéder au champ désiré : Attention cette fonction retourne un objet COleVariant donc penser à convertir la donnée au format voulu ( texte , date , nombre etc...)

mood
Publicité
Posté le 10-03-2001 à 00:23:55  profilanswer
 

n°18003
n0mad
inscrit au XXe siècle
Posté le 10-03-2001 à 14:01:52  profilanswer
 

>Xilebo :
 
pour Oracle il faut utiliser ODBC et donc CDatabase. C'est le même principe que DAO sauf que l'ouverture de la base s'effectue par le DSN que tu auras paramétré sur le poste client.
 
Tu regardes l'help sur la méthode CDatabase::Open().


---------------
Pipiru piru piru pipiru pi
n°18009
xilebo
noone
Posté le 10-03-2001 à 15:39:10  profilanswer
 

Merci de ton rensignement n0mad, je vais essayer ca de suite


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Visual C++ & SQL

 

Sujets relatifs
[Visual Basic]: Quels base do donnee peut on utiliser avec (a part...Problème avec Visual C++
doc visual c++[MFC - Visual C++] Evenements de CEdit...
comment faire du SQL 2 sous win2000 ?Programmer le port serie RS232 en visual C ?
Visual C++4.00 , ca suffit ou pas pour la prog en C ?[MySQL] Installer My SQL sur Xitami
Besoin aide PHP pour me connecter et envoyer requettes SQL à InterbaseType de données sous SQL server 7.0
Plus de sujets relatifs à : Visual C++ & SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR