Ablaufverfolgung der Verbindung (Delegattreiber-Tutorial)
Nach oben zu Tutorial: Verwenden von dbExpress-Delegattreibern
Damit die Verbindungsaktivität verfolgt werden kann, müssen Sie den Parameter DelegateConnection
der Verbindung setzen.
Dies kann auf mehrere Arten erfolgen:
- Bearbeiten Sie im Objektinspektor die Eigenschaften der Komponente TSQLConnection.
- Ändern Sie die Verbindung im Fenster Daten-Explorer.
- Fügen Sie in den Abschnitt [DGCONNECTION] der Datei dbxconnections.ini die Zeile
DelegateConnection=DBXTraceConnection
ein.
Tipp: Informationen zum Durchführen der Ablaufverfolgung und des Poolings für eine Verbindung durch Ändern der Datei dbxconnections.ini finden Sie in
C:\Users\Public\Documents\Embarcadero\Studio\20.0\dbExpress\20.0
.
Der einfachste Weg ist die Bearbeitung der Eigenschaften von TSQLConnection im Objektinspektor.
Im vorherigen Schritt wurde die Eigenschaft Driver von SQLConnection1 (TSQLConnection) beim Setzen der Eigenschaft ConnectionName auf DGCONNECTION automatisch auf Interbase gesetzt.
Setzen Sie nun mit dem Dropdown-Menü die Eigenschaft DelegateConnection auf DBXTrace. Die Eigenschaft DelegateName wird dabei automatisch auf DBXTrace gesetzt. Setzen Sie die Eigenschaft TraceFile auf "c:\temp\dbxtrace.txt". In diesem Verzeichnis wird eine .txt-Datei erstellt, in die das Protokoll geschrieben wird.
Sie können die Flags der Eigenschaft TraceFlags aktivieren oder deaktivieren, um festzulegen, was verfolgt werden soll. Um die Protokollanweisungen auf der Treiberebene einzusehen, müssen Sie TraceDriver auf True setzen.
Tipp: Wenn Sie eine Konsolenanwendung verwenden und der Parameter
TraceFile
nicht angegeben ist, wird die Ausgabe im Konsolenfenster angezeigt.
Jetzt wird der Ablauf der Verbindung verfolgt und eine Protokolldatei entsprechend dem Parameter TraceFile
angelegt.
Führen Sie zum Testen der Ablaufverfolgung der Verbindung die Anwendung aus, und stellen Sie eine Verbindung zu DGCONNECTION her. Die Ausgabedatei sieht etwa folgendermaßen aus:
Log Opened ========================================== {CONNECT } ConnectionC1.GetConnectionProperties; {CONNECT } ConnectionC1.Open; {COMMAND } CommandC1_1 := ConnectionC1.CreateCommand; {COMMAND } CommandC1_1.CommandType := 'Dbx.MetaData'; {COMMAND } CommandC1_1.Text := 'GetTables "c:\Embarcadero\InterBase\examples\database\employee.gdb"."sysdba".% Table;View;'; {COMMAND } ReaderC1_1_1 := CommandC1_1.ExecuteQuery; {READER } {CatalogName TDBXTypes.WideString } {READER } {SchemaName TDBXTypes.WideString } {READER } {TableName TDBXTypes.WideString } {READER } {TableType TDBXTypes.WideString } {READER } { ReaderC1_1_1 closed. 11 row(s) read } {READER } FreeAndNil(ReaderC1_1_1); {COMMAND } FreeAndNil(CommandC1_1); {CONNECT } ConnectionC1.GetConnectionProperty;
Die Protokolldatei zeigt den tatsächlichen Delphi-Quellcode, der ausgeführt wird.