Rapports d'environnement SGBD (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Débogage et support (FireDAC)

Cette rubrique vous présente les différentes options de rapport et de contrôle de FireDAC qui existent dans un environnement SGBD (Système de gestion de bases de données ou DBMS). Ces rapports FireDAC fournissent des méthodes permettant de signaler tous les détails nécessaires relatifs à l'environnement de l'utilisateur, ce qui réduit de façon significative le temps passé à identifier et résoudre un problème, aussi bien pour le client, le développeur et le professionnel du support clientèle.

Possibilités offertes par FireDac :

  • Via FDExplorer ou FDAdministrator --- vous pouvez obtenir un rapport sur la définition de vos connexions persistantes.
  • Via TFDConnection Design Time Editor -- vous pouvez obtenir un rapport détaillé sur la définition d'une connexion.
  • Via le code -- vous pouvez utiliser le code Delphi pour intégrer des capacités de création de rapports dans votre application.

Généralement, une application SGBD échoue à cause des raisons suivantes :

  • Bibliothèques client SGBD manquantes.
  • Version incorrecte du client ou du serveur SGBD ou des deux.
  • Configuration incorrecte des définitions de connexions.
  • Problèmes de compatibilité tels que le support Unicode.

Les options de contrôle et de rapport de FireDAC vous aident à identifier rapidement la source du problème.

Utilisation de FDExplorer

L'utilitaire FDExplorer est le principal outil pour assurer la maintenance des définitions des connexions persistantes centralisées.

Pour obtenir un rapport détaillé sur la définition des connexions persistantes, exécutez FDExplorer. Choisissez une définition de connexion dans l'arborescence du volet de gauche. Pour obtenir un rapport d'environnement détaillé sur la connexion, cliquez sur la page Infos dans la partie droite.

Le rapport inclut les sections suivantes :

  • Paramètres de définition de la connexion -- ensemble complet des paramètres de définition de la connexion.
  • Informations FireDAC -- détails sur la build FireDAC.
  • Informations client -- informations sur le logiciel client SGBD, notamment s'il est correctement installé afin que FireDAC puisse être chargé avec succès. Vous obtenez sinon un message d'échec.
  • Informations sur la session -- informations sur le serveur SGBD et la session utilisateur, indiquant notamment si FireDAC peut ouvrir la connexion avec succès. Vous obtenez sinon un message d'échec.

L'image suivante affiche le rapport relatif à une définition de connexion SQLite. Dans ce cas, le logiciel client SGBD a été chargé, puis la connexion a été activée.


Reports1.png


Utilisation de l'éditeur de TFDConnection en mode conception

L'éditeur de composant TFDConnection en mode conception permet d'assurer la maintenance des paramètres d'une connexion temporaire. Double-cliquez sur un composant TFDConnection en mode conception. Le package FireDAC affiche le dialogue Editeur de connexion.

Pour obtenir un rapport détaillé sur la définition de votre connexion, comme indiqué précédemment, cliquez sur la page Infos.

Remarque : Si un composant TFDConnection n'est pas connecté, le dialogue tente d'établir une connexion temporaire au SGBD pour extraire les données du serveur.

L'image suivante affiche le rapport résultant :

Reports2.png

Utilisation du code Delphi

Vous pouvez démarrer le rapport SGBD directement en appelant la méthode TFDConnection.GetInfoReport :

procedure TMainForm.Button1Click(Sender: TObject);
begin
  FDConnection1.GetInfoReport(mmInfo.Lines);
end;

Cette méthode est déclarée sous la forme :

procedure GetInfoReport(AList: TStrings; AItems: TFDInfoReportItems);

Les valeurs des indicateurs AItems sont :

  • riConnDef-- inclut les paramètres de définition de la connexion dans un rapport.
  • riFireDAC -- inclut les informations de build de FireDAC dans un rapport.
  • riClientLog -- inclut le journal de chargement du client SGBD.
  • riClient -- inclut les informations client du SGBD dans un rapport.
  • riSessionHints --inclut les incompatibilités potentielles de FireDAC, du client SGBD et du serveur.
  • riSession --inclut les informations de session SGBD dans un rapport.
  • riTryConnect -- effectue une tentative de connexion à un SGDB, si la connexion n'est pas déjà établie.
  • riKeepConnected -- si la méthode a établi une connexion, cet indicateur la maintient active.
  • AList -- liste de chaînes cible à ajouter au rapport.

Voir le projet démo <FireDAC>\Samples\Comp Layer\TFDConnection\InfoReport.

Obtention du numéro de build de FireDAC

Pour afficher le numéro de build de FireDAC (par exemple, dans la boîte A propos), reportez-vous à CONST C_FD_Version dans l'unité FireDAC.Stan.Const. Exemple :

 C_FD_Version = '8.0.5 (Build 3365)';

Obtention de la version du SGBD

Pour obtenir le numéro de version d'un client et/ou d'un serveur SGBD (par exemple, pour activer ou désactiver une fonctionnalité dans votre application), utilisez le composant TFDConnection et ouvrez la connexion. Utilisez ensuite l'exemple de code suivant. Il indique comment accéder aux métadonnées physiques :

 
procedure TMainForm.Button2Click(Sender: TObject);
var
  oMetaIntf: IFDPhysConnectionMetadata;
begin
  // Get client and server versions
  oMetaIntf := FDConnection1.ConnectionMetaDataIntf;
  try
    ShowMessage(Format('Client version: %.10d; Server version: %.10d',
      [oMetaIntf.ClientVersion, oMetaIntf.ServerVersion]));
  finally
    oMetaIntf:= nil; // always release the interface before you close the connection
  end;
end;

Vous pouvez trouver de nombreux numéros de version SGBD prédéfinis dans l'unité FireDAC.Stan.Const :

  • cvOracleXXX -- pour Oracle
  • mvMySQLXXX -- pour MySQL
  • svMSSQLXXX -- pour MSSQL
  • svSQLiteXXX -- pour SQLite
  • svPGSQLXXX -- pour PostgreSQL
  • ivIBXXX -- pour InterBase
  • ivFBXXX -- pour Firebird

La version du SGBD est représentée dans FireDAC par une valeur LongWord composée de cinq groupes de chiffres, dans lesquels chaque groupe comporte deux chiffres (le groupe le plus à gauche peut n'avoir qu'un seul chiffre).

Par exemple, mvMySQL032321 = 0323210000 correspond à 3.23.21.0.0. Cela permet une comparaison directe de la version d'un client ou d'un serveur avec une constante :

if oMetaIntf.ServerVersion >= mvMySQL050000 then begin
  // execute MySQL 5.0 or higher specific SQL
end
else begin
  // execute pre-MySQL 5.0 SQL
end;

Voir aussi

Exemple

  • <FireDAC>\Samples\Comp Layer\TFDConnection\InfoReport