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

Windows Discussion :

connexion odbc driver


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Par défaut connexion odbc driver
    salut tout le monde voila j'ai recupéré un code de connnexion odbc mais le probleme c'est que je n'arrive pas a me connecter a ma base de donnée mysql (erreur lorsque je fais SQLCONNECT)
    je poste mon code si vous pouviez m'aider je vous serais reconnaissant
    merci d'avance.
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #pragma comment(lib, "odbc32.lib")
    
    // Les types SQL
    SQLHENV henv;
    SQLHDBC hdbc;
    SQLHSTMT hstmt;
     
    void connec(HWND hWnd )
    {
        // Déclaration des variables SQL
        SQLRETURN retcode;
        SQLINTEGER cblogin, cbmotdepass;
        SQLCHAR szlogin[MAIN_LEN+1],szmotdepass[MAIN_LEN+1];
         
        // Déclaration des variables Standart
        // Exemple de requete
        char requete[1024+1]="select * from joueur";
      
        char Serveur[MAIN_LEN]="192.168.23.214";
        char Login[MAIN_LEN+1]="fenix";
        char Pwd[MAIN_LEN+1]="fenix";   
        FILE *fp;
                     
        // Connexion à la base de données
        retcode=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
                 
        if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
        retcode=SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3,0);
                     
        if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
        retcode=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
        else
        MessageBox(hWnd,"Erreur sur l'instruction SQLAllocHandle !","Erreur",MB_OK);
         
        // Vérification du Lien ODBC, Login Et Pwd       
        if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
        retcode=SQLConnect(hdbc, (SQLCHAR*)Serveur, SQL_NTS, (SQLCHAR*)Login, SQL_NTS, (SQLCHAR*)Pwd, SQL_NTS);
        else
        MessageBox(hWnd,"Erreur sur l'instruction SQLSetEnvAttr !","Erreur",MB_OK);
                         
        if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
        retcode=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
        else
        MessageBox(hWnd,"Erreur sur l'instruction SQLConnect !","Erreur", MB_OK);
        DisplayLastError(hWnd);
                     
        // Execution de la requete
        if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
        retcode=SQLExecDirect(hstmt, (SQLCHAR*)requete, SQL_NTS);
        else
        MessageBox(hWnd,"Erreur sur l'instruction SQLAllocHandle2 !","Erreur",MB_OK);

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Après avoir fouillé la doc et plusieurs balbutiements j'ai codé quelque chose comme suit :
    Tu peux t'en inspirer, car apres, tous les acces sont identiques ou presque ...
    Bib. necessaire : ODBC32.lib
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    #include "windows.h"
    # include <stdio.h> 
    # include <sql.h> 
    # include <sqlext.h>
    
    SQLHSTMT hstmt ;
    SQLHENV  henv ; 
    SQLHDBC  hdbc ;
    RETCODE retcode;
    ......
    ..............
    ........
    .....................
    void UpdSeqCpt (HWND hwnd, char *compte_courrant, int cp_numseq)
    {
    
    UINT nindex;
    char cpt_courrant[24];
    int cpt_numseq;
    
    hstmt = SQL_NULL_HSTMT;
    hdbc = SQL_NULL_HDBC;
    henv = SQL_NULL_HENV;
    
                    strcpy(cpt_courrant, compte_courrant);
                    cpt_numseq = cp_numseq;
    
                    nindex=0;
                    retcode = SQLAllocEnv(&henv);
                    if (retcode == SQL_SUCCESS) {
                      retcode = SQLAllocConnect (henv, &hdbc);
                      if (retcode == SQL_SUCCESS) {
                        retcode = SQLConnect (hdbc, DataBaseUsed, SQL_NTS, "", SQL_NTS, "", SQL_NTS);
                        if (retcode == SQL_SUCCESS) {
                          retcode = SQLAllocStmt (hdbc, &hstmt);
                          if ((retcode == SQL_SUCCESS) || (retcode == SQL_SUCCESS_WITH_INFO))
                          {
                            retcode = SQLPrepare (hstmt, "UPDATE COMPTES SET CP_DERSEQ = ? WHERE (CP_CLE = ?)", SQL_NTS);
                            if ((retcode == SQL_SUCCESS) || (retcode == SQL_SUCCESS_WITH_INFO))
                            {
                              if ((SQLSetParam (hstmt,1,SQL_C_SHORT,SQL_SMALLINT,0,0,&cpt_numseq,NULL) == SQL_SUCCESS)
                              &&  (SQLSetParam (hstmt,2,SQL_C_CHAR,SQL_CHAR,sizeof(cpt_courrant),0,cpt_courrant,NULL) == SQL_SUCCESS)) {
                                retcode = SQLExecute (hstmt);
                                if ((retcode == SQL_SUCCESS) || (retcode == SQL_SUCCESS_WITH_INFO))
                                   nindex++;
                                else
                                  geterror(hstmt);
                              }
                              else
                                geterror(hstmt);
                            }
                            else
                              geterror(hstmt);
                            SQLFreeStmt(hstmt, SQL_DROP);
                          }
                          else
                            geterror(hstmt);
                          SQLDisconnect(hdbc);
                        }
                        else
                          geterror(hstmt);
                        SQLFreeConnect(hdbc);
                      }
                      else
                        geterror(hstmt);
                      SQLFreeEnv(henv);
                    }
                    else
                      geterror(hstmt);
    }
    /*------------------------------------------------------------------*/
    /*                       GESTION DES ERREURS ODBC                   */
    /*------------------------------------------------------------------*/
    static void geterror(SQLHSTMT hstmt) 
    { 
    char msg[256] ;     /* pointer to message */ 
    RETCODE rc;         /* code erreur retour */ 
    char szSqlState[6]; /* etat de retour     */ 
    long noError;       /* no de message      */ 
    short cbmsg; 
    
    rc = SQLError(henv, hdbc, hstmt, szSqlState, &noError, msg, 256, &cbmsg); 
    
    MessageBox(NULL, msg, szAppli, MB_OK|MB_ICONEXCLAMATION);
    }

Discussions similaires

  1. Problème de connexion avec driver ODBC
    Par Asdorve dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 31/05/2012, 09h03
  2. [ODBC] Problème de connexion à l'ODBC (driver)
    Par PtitGénie dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/04/2010, 12h15
  3. [Foxpro]Connexion ODBC par programme
    Par Richard MORRISSEY dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 07/07/2003, 21h55
  4. connexion ODBC FileMaker pro 5 à ArcView 8.2
    Par Alex Blond dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/06/2003, 17h08
  5. Connexion ODBC
    Par Anonymous dans le forum Réseau
    Réponses: 2
    Dernier message: 23/04/2002, 12h10

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