FireDAC.Comp.Client.TFDCustomConnection.Messages
Delphi
property Messages: EFDDBEngineException read GetMessages;
C++
__property Firedac::Stan::Error::EFDDBEngineException* Messages = {read=GetMessages};
Inhaltsverzeichnis
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 |
|
Microsoft SQL Server |
|
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;