FireDAC.Comp.Client.TFDCustomConnection.Messages
Delphi
property Messages: EFDDBEngineException read GetMessages;
C++
__property Firedac::Stan::Error::EFDDBEngineException* Messages = {read=GetMessages};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDCustomConnection |
説明
直近のデータベース操作の後に DBMS によって返されるメッセージのリストを返します。
Messages プロパティを読み取ると、直近の DBMS 呼び出し後に DBMS によって返されるメッセージ、ヒント、警告のリストを取得することができます。このプロパティは、EFDDBEngineException 型です。内容の定義は、DBMS の種類によって異なります。
DBMS |
説明 |
---|---|
Advantage Database Server |
なし |
Microsoft Access データベース |
なし |
DataSnap サーバー |
なし |
IBM DB2 |
なし |
InterBase |
なし |
Firebird |
なし |
MySQL サーバー |
SHOW WARNINGS コマンドの出力 |
Oracle サーバー |
DBMS_OUTPUT パッケージによって生成された出力 |
PostgreSQL |
通知と警告メッセージ |
SQLite |
なし |
Sybase SQL Anywhere |
|
Microsoft SQL Server |
|
サポートされているすべての DBMS が非エラー メッセージを自動的に返すわけではありません。たとえば、Oracle と MySQL の場合、FireDAC では、追加の DBMS API を呼び出してメッセージをクライアントに配信する必要があります。それには、追加のサーバー ラウンドトリップが必要になります。しかし、SQL Server や Sybase SQL Anywhere の場合、メッセージは常に自動的に返されます。ResourceOptions.ServerOutput を True に設定すると、どのような DBMS でもメッセージがクライアントに自動的に返されることが保証されます。メッセージは、次の DBMS 呼び出し(Open、ExecSQL、StartTransaction など)まで、メッセージ リストに格納されます。
例
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;