IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

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

SommaireBases de donnéesBDE (6)
précédent sommaire suivant
 

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.

Mis à jour le 21 juin 2006 Neo41

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 paramètre de DbiInit permet de définir certains paramètres comme le fichier de configuration et le répertoire de travail du BDE. En lui passant NULL, ce sont des valeurs par défaut qui sont utilisées.

Mis à jour le 21 juin 2006 Giovanny Temgoua Ricky81

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(); 
}
Remarque : Il est important d'avoir une session (TSession) et de l'ouvrir pour interroger le BDE.

Mis à jour le 21 juin 2006 atlantis Ricky81

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(); 
}

Mis à jour le 21 juin 2006 Ricky81

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; 
}

Mis à jour le 21 juin 2006 Ricky81

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;

Mis à jour le 21 juin 2006 Greybird Ricky81

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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.