FireDAC.Comp.Client.TFDCustomConnection.Messages

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property Messages: EFDDBEngineException read GetMessages;

C++

__property Firedac::Stan::Error::EFDDBEngineException* Messages = {read=GetMessages};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
property public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDCustomConnection

Beschreibung

Gibt nach einer aktuellen Datenbankoperation eine Liste mit vom DBMS zurückgegebenen Meldungen zurück.

Mit der Eigenschaft Messages ermitteln Sie eine Liste mit Meldungen, Hinweisen oder Warnungen, die von einem DBMS nach einem aktuellen DBMS-Aufruf zurückgegeben werden. Die Eigenschaft hat den Typ EFDDBEngineException. Die Inhaltsdefinition ist von der Art des DBMS abhängig.

DBMS

Beschreibung

Advantage Database Server

Keine

Microsoft Access Database

Keine

DataSnap-Server

Keine

IBM DB2

Keine

InterBase

Keine

Firebird

Keine

MySQL Server

Ausgabe des Befehls SHOW WARNINGS

Oracle Server

Vom DBMS_OUTPUT-Paket erstellte Ausgabe

PostgreSQL

Hinweise und Warnungen

SQLite

Keine

Sybase SQL Anywhere

  • ODBC-Warnungen
  • Ausgabe eines MESSAGE-Befehls

Microsoft SQL Server

  • ODBC-Warnungen
  • Meldungen von RAISERROR mit dem Schweregrad <= 16, beispielsweise für die Ausgabe eines Aufrufs von EXEC sp_configure

Nicht alle unterstützten DBMSs geben automatisch Meldungen, die keine Fehlermeldungen sind, zurück. Beispielsweise muss FireDAC bei Oracle und MySQL eine weitere DBMS-API aufrufen, damit die Meldungen den Client erreichen. Dafür sind zusätzliche Serverzugriffe erforderlich. Bei SQL Server und Sybase SQL Anywhere werden die Meldungen jedoch immer automatisch zurückgegeben. Durch Setzen von ResourceOptions.ServerOutput auf True wird sichergestellt, dass alle DBMSs Meldungen automatisch an den Client zurückgeben. Die Meldungen werden bis zum nächsten DBMS-Aufruf (Open, ExecSQL, StartTransaction usw.) in der "Messages"-Liste gespeichert.

Beispiel

 
 var
   i: Integer;
 begin
   FDConnection1.ResourceOptions.ServerOutput := True;
   FDQuery1.ExecSQL;
   for i := 0 to FDConnection1.ConnectionIntf.Messages.ErrorCount - 1 do
     Memo1.Lines.Add(FDConnection1.ConnectionIntf.Messages[i].Message);
 end;

Siehe auch