Bonjour
Cela fait quelques temps que je cherche à me connecter aux bases Oracle de manière unique à partir de mon interface (en langage C).
Pour résumer, je recherche une chaîne de connexion DSN-Less que je peux utiliser pour n'importe quelle version d'Oracle (actuellement sous Windows, et cela à partir de la 8i), que j'appelle à partir de la fonction SQLDriverConnect.
Je pensais que :
DRIVER={Oracle ODBC Driver};DBQ=TNS;UID=User;PWD=Password
suffirait... Or, ça ne fonctionne que pour Oracle 8, puisque le driver en question n'a plus l'air d'exister à partir de 9i. Ou du moins a un nom comme "{Oracle dans OraHome90}" pour Oracle 9.0 en français... Ce qui est très génant parce que dans l'interface dont j'ai à disposition (et que l'on ne peut modifier), on ne peut que choisir la version d'Oracle (8i, 9i, 10g, 11g) sans choisir la langue.
J'ai donc cherché sur plusieurs sites, notamment celui-ci.
Et apparemment je crains ne pas avoir d'autre solution que de prendre le driver {Microsoft ODBC for Oracle}...
La chaîne devient :
DRIVER={Microsoft ODBC for Oracle};SERVER=TNS;UID=User;PWD=Password
Ce qui fonctionne bien sur Oracle 8i (sous Windows 2000).
Mais pas sur Oracle 9i (sous Windows 2003). Je tombe sur une erreur "S1009" :
[Microsoft][Gestionnaire de pilotes ODBC] Valeur d'argument non valide
Message bizarre puisqu'à mon avis, la même chaîne devrait fonctionner pour les deux versions sur les deux systèmes de la même manière... Je me trompe peut-être.
Avez-vous des idées ?
Merci d'avance.
Partager