FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 920, dernière mise à jour : 8 novembre 2019  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


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

À partir du nom de l'alias, on peut interroger la fonction du BDE DbiGetDatabaseDesc qui permet d'obtenir le nom, le chemin et le type de base de données correspondant.

Exemple : Affichage des paramètres de l'alias DBDEMOS

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses 
  BDE; 
  
function DetailAlias(Alias : String): DBDesc; 
var 
  tStr: array[0..100] of char; 
  Description: DBDesc; 
begin 
  StrPLCopy(tStr, Alias, High(tStr)); 
  DbiGetDatabaseDesc(tStr, @Description); 
  result:= Description; 
end; 
  
procedure TMyForm.MyButtonClick(Sender: TObject); 
begin 
  with DetailAlias('DBDEMOS') do 
  begin 
    Label1.Caption := StrPas(szName); 
    Label2.Caption := StrPas(szPhyName); 
    Label3.Caption := StrPas(szDbType); 
  end; 
end;

Mis à jour le 18 janvier 2014 atlantis

(Extrait de l'aide Delphi) La classe TSession permet de gérer un groupe de connexions de base de données dans une application. Il existe trois types d'utilisation de TSession : standard, fichiers réseau multiples pour Paradox, et dans les applications de base de données multithreads. Pour toutes les applications de base de données, Delphi crée automatiquement un composant par défaut de type TSession, nommé Session, d'accès global. Le composant session par défaut gère les connexions avec les bases de données standards. Une application peut contrôler la session par défaut en accédant à l'exécution à ses propriétés, méthodes et évènements.

Pour obtenir la liste des alias, il suffit d'utiliser la méthode GetAliasNames de l'objet Session.

Exemple :

Code delphi : Sélectionner tout
1
2
3
4
procedure TMyForm.MyButtonClick(Sender: TObject); 
begin 
  Session.GetAliasNames(MyListBox.Items); 
end;

Mis à jour le 18 janvier 2014 atlantis

Le composant TBatchMove de la palette BDE permet de copier ou mettre à jour une table en fonction d'une autre très facilement.

La propriété Source permet de définir la table d'origine des données. La source doit être descendant de BDEDataSet.
La propriété Destination permet de sélectionner la table de destination. Ce doit être un composant TTable.
Il faut aussi fixer la propriété Mode permettant de définir la fonction du BatchMove (copie, mise à jour, etc.). Voir l'aide en ligne pour plus de détails.

Dans le cas d'une BatchMove ne copie pas les index. Il faut recréer les index sur la table de destination après la copie.

Mis à jour le 18 janvier 2014 Nono40

Cette méthode ne s'applique pas à toutes les types de tables ouvertes via le BDE.

Il suffit d'utiliser la méthode AddIndex du composant TTable afin de créer un index sur la table. La table ne doit pas être ouverte par ailleurs pour que la procédure fonctionne.

Par exemple pour créer un index primaire sur une table Paradox :

Code delphi : Sélectionner tout
Table1.AddIndex('','C2;C1;C3',[ixPrimary]);
Et pour ensuite créer un index secondaire :
Code delphi : Sélectionner tout
Table1.AddIndex('UnIndex','C2;C3',[]);
Dans le cas de tables gérées en client/serveur (Interbase, Oracle…), il faut utiliser des requêtes SQL pour définir les index.

Mis à jour le 18 janvier 2014 Nono40

Avant tout, il faut inclure l'unité BDE, car elle comprend les constantes et des fonctions qui seront utilisées dans le code. En particulier la constante DBIERR_NONE et la fonction DBiInit.

Code delphi : Sélectionner tout
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject); 
begin 
    if (dbiInit(nil) = DBIERR_NONE) then ShowMessage('BDE installed!') 
    else ShowMessage('BDE not installed'); 
end;

Mis à jour le 18 janvier 2014 Giovanny Temgoua

Pour ce qui est de la création des alias BDE, il faut recourir à l'une des méthodes AddAlias ou AddStandardAlias de l'objet TSession. La seconde méthode étant spécialisée pour la création d'alias Paradox, DBase et ASCII.
Le code de création dynamique d'un alias pour base Paradox aura la forme :

Code delphi : Sélectionner tout
Session.AddStandardAlias('TempPCalepin', 'C:\DataBase\Mon Calepin', 'Paradox');
et celui pour une base Interbase par exemple:
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.CreateAliasClick(Sender: TObject); 
var Session : TSession; 
    List : TStringList; 
begin 
    Session := TSession.Create(nil); 
    List := TStringList.Create; 
  
    List.Add('SERVER NAME = C:\DataBase\employee.gdb'); // Par exemple 
    List.Add('USER NAME = SYSDBA'); 
    List.Add('PASSWORD = masterkey'); 
  
    Session.AutoSessionName := true; //Pour éviter des conflits de nom de session 
    Session.Open; 
  try 
      Session.AddAlias('EmployeeAlias','INTRBASE',List); 
      Session.SaveConfigFile; 
      Session.Close; 
  finally 
    List.Free; 
    Session.Free; 
  end; 
end;

Mis à jour le 18 janvier 2014 Giovanny Temgoua

Uniquement avec le BDE. Pour le faire, il faut précéder chaque nom de table dans la requête SQL par l'alias de la base encadrée de deux points :

Code sql : Sélectionner tout
1
2
3
4
5
SELECT Employee.CustNo, Clients.OrderNo 
FROM ":AliasBase2:Employee" 
JOIN ":AliasBase1:Clients" 
ON (Customer.CustNo = Orders.CustNo) 
WHERE .....

Mis à jour le 18 janvier 2014 Giovanny Temgoua

Dans le répertoire du BDE (Program Files\Fichiers Communs\Borland Shared\BDE) vous trouverez le fichier BDEINST.CAB; il faut ensuite extraire BDEINST.DLL qui se trouve dans cette archive et l'enregistrer dans la base de registre de la machine cliente en utilisant Regsvr32.exe (qui se trouve dans le répertoire \Windows\System32).
En ligne de commande, tapez :

Code delphi : Sélectionner tout
regsvr32 BDEINST.DLL

Mis à jour le 18 janvier 2014 Giovanny Temgoua

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 © 2019 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.