DBMS-Umgebungsberichte (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Debuggen und Support (FireDAC)


In diesem Thema werden die verschiedenen FireDAC-Überprüfungs- und Berichtsoptionen in Datenbankmanagementsystemen (DBMS) erläutert. Diese FireDAC-Berichte stellen die Methoden zur Aufzeichnung aller notwendigen Details der Benutzerumgebung bereit, wodurch die vom Benutzer, Entwickler und Kundensupport benötigte Zeit zum Erkennen und Lösen von Problemen erheblich reduziert wird.

Möglichkeiten von FireDAC:

  • Verwenden von FDExplorer oder FDAdministrator – Erstellen eines Berichts über Ihre persistente Verbindungsdefinition.
  • Verwenden des TFDConnection-Entwurfszeiteditors – Erstellen eines detaillierten Berichts über eine Verbindungsdefinition.
  • Verwenden von Code – Integrieren von Berichtsfunktionen in Anwendungen mithilfe von Delphi-Code.

DBMS-Anwendungen schlagen im Allgemeinen aus folgenden Gründen fehlt:

  • Fehlende DBMS-Client-Bibliotheken.
  • Falsche Version des DBMS-Clients, -Servers oder von beidem.
  • Falsche Konfiguration der Verbindungsdefinition.
  • Kompatibilitätsprobleme, wie Unicode-Unterstützung.

Mit den Überprüfungs- und Berichtsoptionen von FireDAC können Sie die Ursache von Problemen schnell ermitteln.

Verwenden von FDExplorer

Das Hilfsprogramm FDExplorer ist das Haupttool zum Verwalten der zentralisierten persistenten Verbindungsdefinitionen.

Führen Sie FDExplorer , um einen detaillierten Bericht über Ihre persistente Verbindungsdefinition zu erstellen. Wählen Sie eine Verbindungsdefinition aus der Hierarchie auf der linken Seite aus. Klicken Sie rechts auf die Seite Info, um den detaillierten Umgebungsbericht für die Verbindung anzuzeigen.

Der Bericht enthält die folgenden Abschnitte:

  • Connection definition parameters – alle Parameter der Verbindungsdefinition.
  • FireDAC info – Einzelheiten über das FireDAC-Build.
  • Client info – Informationen über die DBMS-Client-Software, falls diese ordnungsgemäß installiert ist, sodass sie von FireDAC geladen werden kann. Andernfalls erhalten Sie eine Fehlermeldung.
  • Session info – Informationen über den DBMS-Server und die Benutzersitzung, falls FireDAC die Verbindung erfolgreich öffnen kann. Andernfalls erhalten Sie eine Fehlermeldung.

Die folgende Abbildung zeigt den Bericht für eine SQLite-Verbindungsdefinition. In diesem Fall wurde die DBMS-Client-Software geladen, und die Verbindung wurde aktiviert.


Reports1.png


Verwenden des TFDConnection-Entwurfszeiteditors

Der Entwurfszeit-Editor der Komponente TFDConnection stellt die Umgebung zum Verwalten von temporären Verbindungsparametern dar. Doppelklicken Sie beim Entwurf auf eine beliebige TFDConnection-Komponente. Daraufhin wird vom FireDAC-Package das Dialogfeld Connection Editor angezeigt.

Um einen detaillierten Bericht der Verbindungsdefinition anzuzeigen, wie weiter oben beschrieben, klicken Sie auf die Seite Info.

Hinweis: Wenn die TFDConnection-Komponente nicht verbunden ist, wird zum Abrufen der Serverdaten versucht, eine temporäre Verbindung zu einem DBMS herzustellen.

Die folgende Abbildung zeigt den Ergebnisbericht.

Reports2.png


Verwenden von Delphi-Code

Sie können den DBMS-Bericht direkt durch Aufruf der Methode TFDConnection.GetInfoReport starten:

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

Diese Methode ist wie folgt deklariert:

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

Die Werte des AItems-Flags bedeuten Folgendes:

  • riConnDef – Verbindungsdefinitionsparameter in den Bericht einbeziehen.
  • riFireDAC – FireDAC-Build-Info in den Bericht einbeziehen.
  • riClientLog – Ladeprotokoll des DBMS-Clients einbeziehen.
  • riClient – DBMS-Client-Info in den Bericht einbeziehen.
  • riSessionHints – Potenzielle Inkompatibilitäten von FireDAC, DBMS-Client und Server einbeziehen.
  • riSession – DBMS-Sitzungs-Info in den Bericht einbeziehen.
  • riTryConnect – Verbindung zu einem DBMS versuchen, falls noch keine Verbindung besteht.
  • riKeepConnected – Wenn die Methode eine Verbindung hergestellt hat, diese Verbindung aktiv halten.
  • AList – Zielstringliste zum Anfügen an den Bericht.

Siehe das Demoprojekt <FireDAC>\Samples\Comp Layer\TFDConnection\InfoReport.

Ermitteln der FireDAC-Build-Nummer

Wenn Sie die FireDAC-Build-Nummer anzeigen möchten (z. B. im Dialogfeld "About"), verwenden Sie einfach CONST C_FD_Version aus der Unit FireDAC.Stan.Const. Beispiel:

 C_FD_Version = '8.0.5 (Build 3365)';

Ermitteln der DBMS-Version

Um die Versionsnummer des DBMS-Clients und/oder -Servers zu ermitteln (z. B., um eine Funktion in Ihrer Anwendung zu aktivieren oder zu deaktivieren), verwenden Sie die Komponente TFDConnection und öffnen die Verbindung. Verwenden Sie dann das folgende Codebeispiel, das zeigt, wie auf die physischen Metadaten zugegriffen wird:

 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;

In der Unit FireDAC.Stan.Const finden Sie viele vordefinierte DBMS-Versionsnummern:

  • cvOracleXXX – für Oracle
  • mvMySQLXXX – für MySQL
  • svMSSQLXXX – für MSSQL
  • svSQLiteXXX – für SQLite
  • svPGSQLXXX – für PostgreSQL
  • ivIBXXX – für InterBase
  • ivFBXXX – für Firebird

Die DBMS-Version wird in FireDAC durch einen LongWord-Wert dargestellt, der aus 5 Zifferngruppen besteht. Jede Gruppe umfasst 2 Ziffern (die äußerst linke Gruppe kann auch nur aus einer Ziffer bestehen).

mvMySQL032321 = 0323210000 entspricht zum Beispiel 3.23.21.0.0. Dadurch wird ein direkter Vergleich einer Client- oder Serverversion mit einer Konstante ermöglicht:

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

Siehe auch

Beispiel

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