IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

ODBC - API SOCI (ORACLE)


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Points : 106
    Points
    106
    Par défaut ODBC - API SOCI (ORACLE)
    Bonjour,

    j ai un souci avec soci. Mon but, est d utiliser un API (soci) pour me connecter a une base oracle en utilisant ODBC.
    J ai donc installer soci (visaul studio). Dans la solution, il y a deja des pg de test sur les differents connecteur(ODBC,ORACLE,POSTGRES,...)

    J ai donc pris un projet de test pour utiliser ODBC et me connecter a Oracle.
    Je me suis apercu que j obtient une erreur lorque j execute 2 fois de suite la fonction SQLDriverConnect . Est ce normal ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
                 rc = SQLDriverConnect(hdbc_, NULL, // windows handle
                              (SQLCHAR *)connectString.c_str(),
                              (SQLSMALLINT)connectString.size(),
                              outConnString, 1024,
                              &strLength, SQL_DRIVER_NOPROMPT);
     
               //Ici rc= 0 donc tout marche bien 
     
    	 rc = SQLDriverConnect(hdbc_, NULL, // windows handle
                              (SQLCHAR *)connectString.c_str(),
                              (SQLSMALLINT)connectString.size(),
                              outConnString, 1024,
                              &strLength, SQL_DRIVER_NOPROMPT);
                //Ici rc= -1 donc ERROR
     
        if (is_odbc_error(rc))
        {
            throw odbc_soci_error(SQL_HANDLE_DBC, hdbc_,
                             "Error Connecting to database");
        }
    Ensuite le projet de test est tel que l on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     void run(bool dbSupportsTransactions = true)
        {
            std::cout<<"\nSOCI Common Tests:\n\n";
     
            test1();
            test2();
            test3();
            ....
    C est moi qui est rajoute 2 fois la fonction rc = SQLDriverConnect(..).
    Normalement, elle n y est qu une seule fois.
    Ce qui implique, que le test1() va reussir mais pas test2().
    Puisque la fonction SQLDriverConnect va etre appele une 2 ieme fois.

    Si quelqu un a une idee, je suis preneur.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Que dit la doc de SQLDriverConnect ?
    C'est surtout une façon de dire : RTFM

Discussions similaires

  1. odbc+bde avec oracle
    Par geo2040z dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/07/2008, 09h37
  2. Lien ORACLE via ODBC InstantClient d'Oracle
    Par sinquem dans le forum Access
    Réponses: 1
    Dernier message: 18/07/2007, 08h56
  3. Connexion ODBC entre base ORACLE et Developer
    Par sessime dans le forum Oracle
    Réponses: 5
    Dernier message: 04/05/2006, 09h44
  4. Connexion ODBC entre base ORACLE et Developer
    Par sessime dans le forum Windows
    Réponses: 1
    Dernier message: 03/05/2006, 13h28
  5. Problèmes de liens avec ODBC vars DB Oracle
    Par kmingaso dans le forum ASP
    Réponses: 1
    Dernier message: 05/09/2005, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo