FAQ C++ BuilderConsultez toutes les FAQ
Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010 Ajouter une question
Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe C++ Builder de Developpez.
Commentez cette FAQ : Commentez
Vous pouvez utiliser l'installateur BDEInfoSetup qui permet une installation très facile du BDE 5.2. Le lien ci-dessous vous permettra de le télécharger.
La fonction DbiInit de l'unité BDE (bde.hpp à inclure) permet d'initialiser le BDE. On peut donc en détourner l'utilisation première pour savoir si le BDE est installé, ce qui est fait par le code suivant :
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | void __fastcall TForm1::Button1Click(TObject *Sender) { if(DbiInit(NULL) == DBIERR_NONE) { ShowMessage("BDE installé !"); } else { ShowMessage("BDE non trouvé !"); } } |
Le BDE fournit la fonction DbiGetDatabaseDesc qui extrait les paramètres d'un alias BDE.
Pour cela, il est nécessaire d'inclure le header bde.hpp
Le code suivant affiche les paramètres de l'alias BCDEMOS dans un mémo :
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | void __fastcall TForm1::Button1Click(TObject *Sender) { Session->Open(); AnsiString alias = "BCDEMOS"; DBDesc Desc; Check(DbiGetDatabaseDesc(alias.c_str(),&Desc)); Memo1->Clear(); Memo1->Lines->Add("Driver name : " +StrPas(Desc.szDbType)); Memo1->Lines->Add("AliasName : "+StrPas(Desc.szName)); Memo1->Lines->Add("Text : "+StrPas(Desc.szText)); Memo1->Lines->Add("Physical Name/Path : "+StrPas(Desc.szPhyName)); Session->Close(); } |
La méthode GetAliasNames renvoie une liste des alias BDE persistants, ceux qui existent dans un stockage permanent ou dans le fichier de configuration du BDE.
Pour avoir dans la liste les alias créés localement (dans la session), il suffit de définir la propriété ConfigMode à cmAll.
Le code suivant affiche la liste des alias dans un mémo :
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 | void __fastcall TForm1::Button1Click(TObject *Sender) { Session->ConfigMode = cmAll; Session->Open(); Session->GetAliasNames(Memo1->Lines); Session->Close(); } |
Le composant TSession propose deux méthodes : AddAlias et AddStandardAlias.
Cette dernière permet de créer un alias spécifiquement pour des tables Paradox, dBASE ou ASCII.
L'exemple suivant crée un alias et l'enregistre définitivement par l'intermédiaire de SaveConfigFile :
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *liste = new TStringList(); liste->Add("SERVER NAME = IB_SERVER:/PATH/DATABASE.GDB"); liste->Add("USER NAME = MYNAME"); liste->Add("PASSWORD = MYPWD"); Session1->Open(); Session1->AddAlias("MonIBAlias", "INTRBASE", liste); Session1->SaveConfigFile(); Session1->Close(); delete liste; } |
La propriété ConfigMode d'un objet de type TSession définit la visibilité de ladite session sur les alias BDE disponibles (dans les deux sens).
Elle permet en quelque sorte de définir un niveau d'isolation de la session.
Il existe un set de 3 valeurs, décrites dans l'aide, qui sont les suivantes :
- cfmVirtual
- cfmPersistent
- cfmSession
Ainsi, si ConfigMode ne contient que cfmSession, la session ne pourra voir que les alias qu'elle crée en mémoire, et les autres sessions n'auront pas la possibilité d'accéder à ces alias. De plus, l'enregistrement des alias n'a dès lors aucun sens : l'appel de la méthode SaveConfigFile sera sans effet.
Si la propriété ne contient que Virtual, on obtiendra les entrées ODBC définies au niveau de Windows (Administrateur ODBC).
Enfin, si elle ne contient que Persistant, on obtiendra les entrées ODBC définies au niveau du BDE (Administrateur BDE).
La valeur cmAll correspond à la combinaison des 3 listées précédemment et rend donc l'accès à l'ensemble des alias, et même entre sessions différentes. C'est également la valeur par défaut de ConfigMode.
Quelques exemples :
Code c++ : | Sélectionner tout |
1 2 3 | Session1->ConfigMode = TConfigMode() << cfmSession; Session2->ConfigMode = TConfigMode() << cfmSession << cfmPersistent; Session3->ConfigMode = cmAll; |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.