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

Autres éditeurs Discussion :

C et Access


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Par défaut C et Access
    hello a tous j'arrive a manipuler le C avec une base de donnee Mysql...
    mais la je suis bloque
    vous connaissez tous <mysql.h>
    mais comment puis-je faire avec une base access?
    je ne connais pas les api..
    je recherche a pouvoir consulter une base de donnees access a partir d'un programme C et d'y etablir quelques relations entre des donnees qui seront dans une liste chainee et des donnees qui seront dans la base.. bref est ce possible?

    merci d avance

  2. #2
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Par défaut
    bonjour,
    bon pour acceder à un base access, il y a deux méthodes, une on utilisant
    les drivers natifs, et l'autre on utilisant les drivers ODBC. Pour le cas particulier d'Access, il faut savoir qu'à partir d'Access2000 il n'est plus possible d'utiliser les drivers natifs. Néanmoins, leur utilisation peut très bien se faire pour des fichiers au format Access95 ou Access97...
    donc je pense qu'il sera mieux d'utiliser l'ODBC pour ce faire tu as besoin de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include "afxdb.h"
    #include "sql.h"
    et les odbc32.dll,odbc32.lib,odbc.lib, odbc.dll selon votre OS

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Par défaut
    merci bcp
    tu pourrai men dire un peu plus sur les ODBC?
    vai essayer de me renseigner
    merci encore

  4. #4
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Par défaut
    bon je crois que ce petit prog vous aidera
    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
     
    #include<iostream>
    #include<string>
    #include<sql.h>
    #include<sqlext.h>
    using namespace std;
    int main()
    {
        HENV hEnv;
        HDBC hDbc;
        RETCODE rc;
        int iOut;
        char strOut[256];
        char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[c:\\db1.mdb];";
        //dsn samples:
        //"driver={Microsoft Access Driver (*.mdb)};dbq=[f:\\db1.mdb];"
        //"driver={SQL Server};pwd={password there};Server={server name};Database={dbname there}"
        //driver names for different databases:
        //{SQL Server}
        //{Microsoft ODBC for Oracle}
        //{Oracle in oracle9}
        //{Microsoft Access Driver (*.mdb)}
        //{MySQL ODBC 3.51 Driver}
     
        char* szSql = "select * from table1";
        rc = SQLAllocEnv(&hEnv);
        rc = SQLAllocConnect(hEnv, &hDbc);
     
        rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, 
            SQL_NTS, (unsigned char*)strOut, 
            255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
        {
            int ival;
            char chval[128];
            int ret1;
            int ret2;
            HSTMT hStmt;
            rc = SQLAllocStmt(hDbc,&hStmt);
            rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);//1
            //rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind);
            rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ival, 4, (SQLINTEGER*)& ret1);
            rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, chval, 128, (SQLINTEGER*)&ret2);
            rc = SQLExecute(hStmt); //2
            //if you have queries like drop/create/many update... 
            //instead of //1 //2 and //3 you could use
            //rc=SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);
            cout<< ">table:"<< endl;
            while(1) //3
            {
                rc = SQLFetch(hStmt);
                if(rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO)break;
                cout<< "{"<< ival<<"}{"<< chval<< "}"<< endl;
            }
            rc=SQLFreeStmt(hStmt, SQL_DROP);
        }
        rc = SQLDisconnect(hDbc);
        rc = SQLFreeEnv(hEnv);
        return 0;
    }

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Par défaut
    merci...vais essayer de decrypter tt cela...
    bye :D

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. perl et access
    Par dechoc dans le forum Modules
    Réponses: 3
    Dernier message: 10/08/2002, 20h02
  4. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

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