📘
FDConnectionをトレースする
TFDMoniFlatFileClientLinkの使用方法
TFDMoniFlatFileClientLinkを使用することで、特定のFDConnectionに対してロギングを行うことができる。トランザクション周りの停止や遅延などの調査に利用できる。
TFDMoniFlatFileClientLinkは非ビジュアルコンポーネントととして実装されているため、GUIから利用するほうが楽。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TFDConnection *connection = new TFDConnection(NULL);
connection->DriverName = "SQLite";
connection->Params->Database = GetCurrentDir() + "\\MyDb.db"; // データベースファイルの場所を指定(バックグランドでCREATE DATABASEが動く)
TFDQuery *query = new TFDQuery(NULL);
query->Connection = connection;
// トレースコンポーネントの生成
TFDMoniFlatFileClientLink *monitor = new TFDMoniFlatFileClientLink(NULL);
connection->Params->MonitorBy = mbFlatFile; // FDConnectionにモニター機能を割り当て
monitor->FileName = "D:\\log.log"; // 出力ファイル名を指定
monitor->Tracing = true; // ロギング開始
// テーブル定義
query->SQL->Clear();
query->SQL->Text = "CREATE TABLE MyTable(id integer, name text, PRIMARY KEY(id))";
query->ExecSQL();
// テストデータ投入
query->SQL->Clear();
query->SQL->Text = "INSERT INTO MyTable(id, name) VALUES (1,'namae');";
query->ExecSQL();
// クエリ
query->SQL->Clear();
query->SQL->Text = "SELECT * FROM MyTable;";
query->Open();
int count = query->RecordCount;
monitor->Tracing = false; // ロギング終了
delete monitor;
delete connection;
delete query;
}
Discussion