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

MFC Discussion :

connection a une base de donnée access


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 17
    Points
    17
    Par défaut connection a une base de donnée access
    rebonjour,

    voila j'ai un nouveau probleme, il 'agit de connecter une basse de donner access a mon programme !

    en l'attente de votre réponse je vous pris, Madame, Monsieur, de croire en l'expression de mes sentiments les plus respectueux

  2. #2
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    le mieux c'est ADO, mais comme c'est assez fouillis, je te conseille de télécharger une classe qui l'encapsule, y 'en a sur http://www.codeguru.com/Cpp/data/mfc_database/ et www.codeproject.com.

    sinon, fais une recherche sur le forum, j'ai ai déjà vu....

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    oki merci bcp

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    pour connecter une base donnée access a ton programme, tu peux utilisé soit ADO, que je ne connais pas bien, mais tu peux aussi utilisé ODBC. Voila trois fonction qui devrait te permettre de te débrouiller avec ta base de donnée:

    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
    86
    87
    88
    // header
    #include <windows.h>
    #include <sql.h>
    #include <sqlext.h>
     
    // la librairie utilisé pour l'acces a la base
    #pragma comment(lib, "odbc32.lib")
     
    __inline char* bnstrcpy(char *dst, char *src) // return ptr sur NULL final
    {
    __asm {
    mov eax, dst
    mov ecx, src
    dec eax
    LcpyLoop:
    mov dl, [ecx]
    inc eax
    inc ecx
    mov [eax], dl
    or dl, dl
    jz short LcpyOut
    mov dl, [ecx]
    inc eax
    inc ecx
    mov [eax], dl
    or dl, dl
    jz short LcpyOut
    mov dl, [ecx]
    inc eax
    inc ecx
    mov [eax], dl
    or dl, dl
    jnz short LcpyLoop
    LcpyOut:
    }
    }
     
    // te permet de créé un environnmeent odbc pour connection a la bd
    int OdbcConnEnvCreate()
    {
    SQLRETURN retcd;
    retcd = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    if(retcd & 0xFFFE) return 0;
    retcd = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,0);
    if(retcd & 0xFFFE) goto envOut;
    retcd = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hconn);
    if(!(retcd & 0xFFFE)) return 1;
    envOut:
    SQLFreeHandle(SQL_HANDLE_ENV, henv);
    return 0;
    }
     
    // pour acceder a la bd
    int __stdcall OdbcMdbConnect(int bReadOnly, char* dbname, char* dbpwd)
    { // dbname et dbpwd en options
    // dbpwd pris en compte SI dbname est fourni
    SQLRETURN retcd;
    char *c;
    if(bReadOnly) 
    SQLSetConnectAttr(hconn, SQL_ATTR_ACCESS_MODE, (SQLPOINTER)SQL_MODE_READ_ONLY, 0);
    c = bnstrcpy(szbuff, "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=");
    if(dbname) {
    if(dbname[0]) {
    c = bnstrcpy(c, dbname);
    if(dbpwd) {
    if(dbpwd[0]) {
    *c = ';'; *(c+1) = 'P'; *(c+2) = 'W'; *(c+3) = 'D'; *(c+4) = '=';
    c = bnstrcpy(c+5, dbpwd);
    }
    }
    }
    }
    retcd = SQLDriverConnect(hconn, 0, (SQLCHAR*)szbuff, c - szbuff,
    0, 0, 0, SQL_DRIVER_COMPLETE_REQUIRED);
    return ((retcd & 0xFFFE) == 0);
    }
     
    // te permet de lancer une requete
    int __stdcall OdbcExecAction(char *pszqry) // RETOURNE != 0 SI ERREUR
    {
    SQLHANDLE hstmt;
    SQLRETURN retcd;
    retcd = SQLAllocHandle(SQL_HANDLE_STMT, hconn, &hstmt);
    if(retcd & 0xFFFE) return 1; // ERREUR
    retcd = SQLExecDirect(hstmt, (SQLCHAR*)pszqry, 60);
    SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
    return (retcd & 0xFFFE);
    }
    voila normalement c bon, tu devrais pas avoir de pb !

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    désoler me suis un peu planté au niveau des balise !
    sinon personnellement je prefere utilisé ODBC pour connecter une base de données a mon programme !
    en fait je pense que quand on fait un projet MFC on utilise ADO ! enfin pour les quelques programmes que j'ai vu cela était comme ca ADO -> MFC et ODBC -> API

  6. #6
    Membre habitué Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Points : 197
    Points
    197
    Par défaut
    ODBC est condamné.
    Pas encore déprécié mais ça ne saurait tarder.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    justement en fate c un projet mfc que j'ai fait , c'est pour sa que j'aurais voulu savoir comment marche l'activeX ADO ou au moins 'est le quel dans la liste des acticeX de visual studio .net

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    ODBC est condamné.
    pourquoi donc?

Discussions similaires

  1. [Débutant] Connection a une base de donné access en mode non connecté.
    Par Ryshar dans le forum C#
    Réponses: 1
    Dernier message: 14/06/2013, 00h47
  2. Comment se connecter à une base de données Access 97 ?
    Par yann87 dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/12/2007, 08h49
  3. [VBA-ACCESS] Connection a une base de donnée
    Par noob_vba dans le forum Access
    Réponses: 8
    Dernier message: 26/06/2006, 17h36
  4. connection a une base de donné access
    Par akimmm dans le forum MFC
    Réponses: 5
    Dernier message: 19/11/2005, 00h08
  5. [débutant] Connection à une base de donnée Access
    Par Lorenzox dans le forum JBuilder
    Réponses: 1
    Dernier message: 25/10/2004, 16h28

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