Acces base oracle via ODBC avec C

Fermé
arfi26 Messages postés 2 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007 - 14 sept. 2007 à 14:54
arfi26 Messages postés 2 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007 - 17 sept. 2007 à 14:31
Bonsoir,

J'ai créé une fonction avec langage C, qui accede à une base de données Oracle via une source de données ODBC.
Ma fonction me retourne rien.

Mon probleme est :

1- j'utilise la fonction : SQLConnect

retcode = SQLConnect(hdbc,(unsigned char *) chr_ds_name,SQL_NTS,(SQLCHAR *) szUName,SQL_NTS,(SQLCHAR *) szPSName,SQL_NTS);

Mais le compilateur ( j'utilise Microsoft Visual Studio 2005 ) m'affiche toujours que dans la fonction SQLConnectW on ne peut convertir le type SQLCHAR * en SQLWCHAR * !!!!
je ne comprend plus rien.

et quand je mets SQLConnectW à la place de SQLConnect, et SQLWCHAR à la place de SQLCHAR alors le code retour est toujours different de zero ! ma connexion surement n'est pas etablie, ce qui explique que je n'ai rien en retour( pas de resultat select ) !

2- je ne sais pas si ma cource ODBC est operationnelle. Pour info j'utilise Oracle ODBC Driver et j'ai le client oracle sur mon poste installé.

Merci de me debloquer, svp, et si vous connaissez une façon plus agreable pour ce connecter à Oracle pour lancer des requetes SQL alors aidez moi .

Merci par avance.

2 réponses

elghafoud Messages postés 121 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 29 avril 2013 18
14 sept. 2007 à 17:09
Salut!

J'ai eu le meme probleme pendant un moment! mais j'ai trouvé un tuto qui explique super bien comment tu peux avancer facilement! je te laisse visiter ma page le cours est la :

http://www.elghafoud.net/Le-langage-C-ODBC.html

sinon tu pourra téléchargé direct sur
http://gforge.elghafoud.net/docman/index.php?group_id=6&selected_doc_group_id=4&language_id=1
0
arfi26 Messages postés 2 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007
17 sept. 2007 à 14:31
Merci enormement pour ta reponse.
Mais j'ai tjrs des problemes en utilsant ton code, le compilateur continue à m'afficher les deux msg d'erreurs déja rencontrés avant, avec la fonction SQLConnect, et la fonction sprintf mnt :

\main.cpp(82) : error C2664: 'sprintf' : cannot convert parameter 1 from 'UCHAR *' to 'char *'
et
\main.cpp(86) : error C2664: 'SQLConnectW' : cannot convert parameter 2 from 'UCHAR *' to 'SQLWCHAR *'

D'autre part j'ai compris que pour se connecter, 'il faut utiliser soit la fonction SQLDriverConnect soit SQLConnect. alors est ce que pour les deux fonctions je dois avoir ma source ODBC créé ?

quelles parametres à passer à l'une ou l'autre dans le cas ou je veux me connecter à une base ORACLE ayant les caracteristiques suivantes ( lecture dans mon tnsnames.ora) :

BASEPRODUCTION =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 20.0.0.20)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PROD)
)
)


Merci par avance pour ton aide.
0