Acces base oracle via ODBC avec C
arfi26
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
arfi26 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
arfi26 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Acces base oracle via ODBC avec C
- Acces rapide - Guide
- Base de registre - Guide
- Accès refusé - Guide
- Trousseau d'accès iphone - Guide
- Accès presse papier - Guide
2 réponses
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
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
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.
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.