Fragen zur Debugging- und Berichtsumgebung (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FAQ (FireDAC)

Dieses Thema enthält eine Liste mit Fragen und Antworten zur Debugging- und Berichtsumgebung.

F1: Wie kann ich Client-/Sitzungsinformationen, wie FDExplorer, abrufen?

A: Siehe DBMS-Umgebungsberichte.

F2: Wie kann ich Ablaufverfolgungs-/Überwachungsausgaben generieren?

A: Siehe Ablaufverfolgung und Überwachung.

F3: Wie kann ich die Ablaufverfolgungs-/Überwachungsausgabe vorübergehend aktivieren/deaktivieren?

A: Verwenden Sie TFDMoniXxxxClientLink.Tracing. Damit wird die Ablaufverfolgungsausgabe für eine bestimmte Ablaufverfolgungsart aktiviert oder deaktiviert. Verwenden Sie darüber hinaus zum Aktivieren oder Deaktivieren der Ablaufverfolgungsausgabe für eine bestimmte hergestellte Verbindung FDConnection.ConnectionIntf.Tracing.

F4: Was bedeutet EventKind?

A: EventKind kann Folgendes bedeuten:

  • LiveCycle: Objekterstellung/-freigabe. Zum Beispiel wird IFDPhysConnection erstellt.
  • Error: DBMS-Fehler.
  • ConnConnect: Verbindung öffnen/schließen.
  • ConnTransact: Starten/Übergeben/Zurücksetzen.
  • ConnService: Spezielle Ereignisse.
  • CmdPrepare: IFDPhysCommand.Prepare-Aufrufe.
  • CmdExecute: Aufrufe von IFDPhysCommand.Execute oder Open.
  • CmdDataIn: Anweisungsparameterwerte.
  • CmdDataOut: Zeilen in Ergebnismengen.
  • AdaptUpdat: Alles zum Eintragen von Aktualisierungen.
  • Vendor: Aufrufe der Low-Level-DBMS-API.
  • Component: Ereignisse auf höherer Ebene.

F5: In welcher Unit und in welchem Teil des Codes kann ich beim Debuggen die SQL-Anweisung finden?

A: Verwenden Sie dazu die folgenden Optionen:

  • Sie können den Verbindungsparameter MonitorBy verwenden.
  • Öffnen Sie " FireDAC.Phys.pas", suchen Sie die Methode TFDPhysCommand.Prepare. Hier befindet sich der InternalPrepare-Methodenaufruf. Setzen Sie hier einen Haltepunkt, und überprüfen Sie den Wert des FDbCommandText-Feldes. Es enthält den SQL-Anweisungstext so, wie er an ein DBMS gesendet wird.

F6: Wie kann ich die letzte SQL-Anweisung abrufen, in der alle Parameter und Makros ersetzt sind?

A: Siehe TFDQuery.Text. FireDAC ersetzt keine Parameterwerte im letzten SQL-Anweisungstext.

F7: Ich habe die Ablaufverfolgungsausgabe aktiviert, und ich erhalte dauernd Zugriffsverletzungen. Was ist falsch? Ist das ein Programmfehler?

A: FireDAC verwendet für die ODBC-basierten Treiber die Ablaufverfolgungsfunktionen des Microsoft ODBC-Treiber-Managers. Um die Ablaufverfolgungsausgabe zu generieren, verwendet der Manager intern die C-RTL-Funktionen IsBadReadPtr/IsBadWritePtr, die intern eine kontrollierte Zugriffsverletzung generieren können. Die Exception wird nicht außerhalb des Managers weitergegeben, aber der IDE-Debugger hält bei dieser Exception an. Ignorieren Sie sie einfach.