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 :

Bases de données: ADO et C++/c native


Sujet :

C++

  1. #1
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Bases de données: ADO et C++/c native
    Bonjour à tous,

    Je sais pas si c'est le forum indiqué, mais je pose mon probleme.

    Voila, Je developpe une application de base de données avec CODE::BLOCKS(Borland C++ compiler) et MS ACCESS.

    Je souhaite me connecter via ADO, est ce possible?

    En parcourant le net j'ai trouvé quelques tuto, il faut importer msado15.dll

    #import "msado15.dll" crée un fichier msado15.tlh et msado15.tli (Qui semble bien fonctionné avec visual c++)

    Mon problème,
    J'ai cette erreur à la compilation "Unable to open include file msado15.tlh

    Quelqu'un peut t'il m'aider à comprendre?

    Qu'est ce qui manque pour utiliser msado15.dll?
    Pourquoi le compilateur(Borland c++ compilatuer) genère le fichier msado15.dll et n'arrive pas à l'ouvrir?
    y a t-il d'autres moyens pour acceder à la BDD via ADO,

    Merci d'avance.
    Ils ne savaient pas que c'etait impossible, alors ils l'ont fait

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Je ne connais pas CODE::BLOCKS, mais vérifiez que les fichiers msado15.tlh et msado15.tli ont bien été générés par tlibimp.exe dans le répertoire des sources ou dans un des ses sous répertoires.
    Généralement, sous VS, on utilise le chemin complet vers la dll et non juste le nom du fichier.
    Si msado15.tlh existe, vérifiez que le répertoire le contenant est bien dans la liste des répertoires utilisés par le préprocesseur pour construire le fichier sources consolidées.

  3. #3
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Merci Bacelar pour votre reaction, mais votre reponse ne s'affiche pas à la suite de mon message, je ne sais pas pourqoui.

    je compile avec borland c++ compiler, il n'y a pas de tilbimp.exe dans le dossier "Bin", mais implib.exe, tlip.exe.

    J'ai copié le "tilbimp.exe" du dossier bin de Borland c++ builder 6 vers le bin de mon compilateur, et essayé de remplacer les deux fichiers par tilbimp.exe, mais là ça ne compile pas du tout.

    Merci encore.
    Ils ne savaient pas que c'etait impossible, alors ils l'ont fait

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Evitez les manipulations renommant les exécutables.
    Le message du compilateur montre que #import est géré par votre préprocesseur.
    Il a remplacé le #import par un #include.
    Il faut vérifier où le fichier tlh et configurer le compilateur pour que le répertoire le contenant soit utilisé dans la recherche.

  5. #5
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Merci une fois de plus, alors je serrai un peu clair.

    L'execution de #import "C:\Program Files\Fichiers communs\System\ado\msado15.dll" crée automatiquement deux fichier msado15.tlh et msado.tli (ce dernier est inclu dans msado.tlh).
    J'ai essayé d'incluire directement les deux fichiers:
    Toujours impossible d'ouvrir msado15.tlh, par contre msado15.tli s'ouvre, mais il ya erreur lors de l'execution.
    or dans la compilation le .tlh est ouvert avant le .tli
    Msado15.tlh a plus de 2000 lignes , voici quelques de debut et de la fin du fichier:
    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
    89
    90
    91
    92
     
     
    //        GENERATED SOURCE FILE - DO NOT EDIT             
    //                                                                
    // This source file was generated by the Borland C++ compiler     
    // in response to a #import directive for the type library :      
    // 		C                                                         
    //                                                                
    #pragma once                                                      
    #pragma pack(push, 8)                                             
    #include <comdef.h>                                               
     
    // Forward references
     
    struct __declspec(uuid("00000402-0000-0010-8000-00aa006d2ea4"))
      /*interface*/ ConnectionEventsVt;
      /*interface*/ ADORecordsetConstruction;
    struct __declspec(uuid("00000512-0000-0010-8000-00aa006d2ea4"))
      /*interface*/ _Collection;
    struct __declspec(uuid("00000513-0000-0010-8000-00aa006d2ea4"))
      /*interface*/ _DynaCollection;
    struct __declspec(uuid("00000505-0000-0010-8000-00aa006d2ea4"))
      /*interface*/ Field15;
    struct /* coclass */Connection;
    struct /* coclass */Record;
    struct /* coclass */Stream;
    struct /* coclass */Command;
    struct /* coclass */Recordset;
    struct /* coclass */Parameter;
     
    //
    // Smart pointer declarations
    //
     
    _COM_SMARTPTR_TYPEDEF( ConnectionEventsVt , __uuidof( ConnectionEventsVt ) );
    _COM_SMARTPTR_TYPEDEF( RecordsetEventsVt , __uuidof( RecordsetEventsVt ) );
    _COM_SMARTPTR_TYPEDEF( ADOConnectionConstruction15 , __uuidof( ADOConnectionConstruction15 ) );
    _COM_SMARTPTR_TYPEDEF( ADOConnectionConstruction , __uuidof( 
    _COM_SMARTPTR_TYPEDEF( ConnectionEvents , __uuidof( IDispatch ) );
    _COM_SMARTPTR_TYPEDEF( RecordsetEvents , __uuidof( IDispatch ) );
    _COM_SMARTPTR_TYPEDEF( _Record , __uuidof( IDispatch ) );
    _COM_SMARTPTR_TYPEDEF( _Stream , __uuidof( IDispatch ) );
    _COM_SMARTPTR_TYPEDEF( Field15 , __uuidof( IDispatch ) );
     
    //
    // Type library items
    //
     
    enum CursorTypeEnum 
    {
      adOpenUnspecified = -1,
      adOpenForwardOnly = 0,
      adOpenKeyset = 1,
      adOpenDynamic = 2,
      adOpenStatic = 3
    };
     
    enum CursorOptionEnum 
    {
      adHoldRecords = 256,
      adMovePrevious = 512,
      adAddNew = 16778240,
      adDelete = 16779264,
      adUpdate = 16809984,
      adBookmark = 8192,
      adApproxPosition = 16384,
      adUpdateBatch = 65536,
      adResync = 131072,
      adNotify = 262144,
      adFind = 524288,
      adSeek = 4194304,
      adIndex = 8388608
    };
    .
    .
    .
    Declaration des structures (environ 2000 lignes)
    .
    .
    .
     
     virtual HRESULT __stdcall raw_ConnectComplete(
        struct Error* pError,
        EventStatusEnum* adStatus,
        struct _Connection* pConnection ) = 0 ;
      virtual HRESULT __stdcall raw_Disconnect(
        EventStatusEnum* adStatus,
        struct _Connection* pConnection ) = 0 ;
    };
     
    #include "msado15.tli"
    #pragma pack(pop)
    J'espère qu'avec ceci vous pourrez mieux analyser le problème.
    Merci pour votre aide.
    Ils ne savaient pas que c'etait impossible, alors ils l'ont fait

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Le fichier tlh m'a l'air tout à fait convenable.
    C'est juste que la version VS utilise systématiquement des chemins absolus aussi bien dans l'include du tlh(dans le .i généré par le préprocesseur) que du tli( à la fin du .tlh).

    Je reviens donc sur ma question, le répertoire contenant le tlh est-il dans un répertoire de .h ?

  7. #7
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut ADO et C++
    Bonjour BACELAR,

    Je n'avais pas accès à votre dernière reponse, raison pour laquelle je n'ai pas pu vous repondre.

    Je m'etais déjà lancé avec ODBC, mais une solution ADO et OLE JET est préferable.

    Revenant au sujet, les fichiers .tlh et .tli sont logés dans le repertoire de mon projet (celui contenant l'executable) et non dans un repertoire de .h (bin ou include).

    Si je comprends bien, je dois copier ces deux fichiers générés dans le repertoire des fichiers entête, je vais l'esayer et vous tiendrai au courant de l'évolution.

    Merci pour votre temps!
    Ils ne savaient pas que c'etait impossible, alors ils l'ont fait

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/07/2009, 05h14
  2. Le composant DBEdit et base de données ADO
    Par haphp dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/06/2009, 12h41
  3. base de données ado
    Par mamhouda dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/02/2009, 18h37
  4. Connexion a une Base de données - ADO
    Par lyraaa dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 05/06/2007, 16h14

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