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 3.0 |
FB$OUT パッケージによって生成される出力 |
MySQL Server |
SHOW WARNINGS コマンドによって生成される出力 |
Oracle Server |
DBMS_OUTPUT パッケージによって生成される出力 |
POSTGRESQL |
注意および警告のメッセージ |
SQLite |
なし |
Sybase SQL Anywhere |
|
Microsoft SQL Server |
|
サポートされている DBMS のすべてが、自動的にエラー以外のメッセージを返すわけではありません。たとえば、Oracle、MySQL、FireBird の場合、メッセージをクライアントに届けるには、追加の DBMS API を呼び出す必要があります。これは、追加のサーバー ラウンド トリップを必要とします。しかし、SQL Server や Sybase SQL Anywhere の場合、メッセージは常に自動的に返されます。ResourceOptions.ServerOutput を True に設定するとどんな DBMS に対してもこれが保証され、メッセージは、自動的にクライアントに返されるようになります。 メッセージは、次の DBMS 呼び出し(Open、ExecSQL、StartTransaction など)まで Messages リストに格納されます。
例
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;