付属の通信追跡ソフトFDMonitorにFireDACでアプリケーションとデータベースの通信ログを出力する方法です。
実行されたSQLを確認したりすることができ、デバッグ時に役に立ちます。
FDMonitorはRAD Studio XE5では標準で次の場所にあります。
C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin\FDMonitor.exe
FDMonitorに通信ログを出力するには、TFDMoniRemoteClientLinkコンポーネントを配置し、TracingプロパティをTrueにします。
// 監視を有効にする
FDMoniRemoteClientLink1.Tracing := True;
またTFDConnectionコンポーネントの接続定義パラメータの「MonitorBy」を「Remote」にします。
FDConnection1.Params.Add('MonitorBy=Remote'); // 追跡出力をFDMonitorに送る
以上で、設定は完了です。
アプリケーションとデータベースの間で通信が行われると、FDMonitorに通信ログが表示されます。
サンプルアプリケーション
SQLiteデータベースの通信ログをFDMonitorに出力するアプリケーションです。
新規にVCLフォームアプリケーションを作成し、フォームに次のコンポーネントを配置します。
- TButton
- TFDConnection
- TFDGUIxWaitCursor
- TFDPhysSQLiteDriverLink
- TFDMoniRemoteClientLink
Button1のOnClickイベントを記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
// 監視を有効にする
FDMoniRemoteClientLink1.Tracing := True;
// 接続設定
FDConnection1.Params.Clear;
FDConnection1.Params.Add('DriverID=SQLite');
FDConnection1.Params.Add('Database=:memory:');
FDConnection1.Params.Add('MonitorBy=Remote'); // 追跡出力をFDMonitorに送る
//sqlite3.dllのパス
FDPhysSQLiteDriverLink1.VendorLib := 'C:\driver\sqlite3.dll';
// 接続する
FDConnection1.Connected := True;
//データを登録する
FDConnection1.ExecSQL('create table testtab (id integer, name text)');
FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
['1', 'RAD Studio XE5'], [ftInteger, ftString]);
FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
['2', 'Delphi XE5'], [ftInteger, ftString]);
// 追跡出力を一時的に無効にする
FDConnection1.ConnectionIntf.Tracing := False;
//データを登録する
FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
['3', 'C++Builder XE5'], [ftInteger, ftString]);
FDConnection1.Close;
end;
アプリケーションを実行してボタンを押すとFDMonitorに通信ログが表示されます。