デバッグおよびレポート作成環境に関する質問(FireDAC)

提供: RAD Studio
移動先: 案内検索

FAQ(FireDAC) への移動


このトピックでは、デバッグとレポート環境に関する、質問と回答の一覧を掲載しています。

Q1: FDExplorer のようなクライアント/セッション情報を取得するには、どうすればよいでしょうか。

A: 「DBMS 環境レポート」を参照してください。

Q2: 追跡/監視出力を生成するには、どうすればよいでしょうか。

A: 「追跡と監視」を参照してください。

Q3: 追跡/監視出力を一時的に有効/無効にするには、どうすればよいでしょうか。

A: TFDMoniXxxxClientLink.Tracing を使用します。このプロパティにより、特定の種類の追跡コンポーネントについて追跡出力が有効または無効になります。 また、確立された特定の接続の追跡出力を有効または無効にするには、FDConnection.ConnectionIntf.Tracing を使用します。

Q4: EventKind の意味は何ですか。

A: 以下の一覧をご覧ください。

  • LiveCycle: オブジェクトの生成/破棄。 たとえば、IFDPhysConnection が作成されます。
  • Error: DBMS エラー
  • ConnConnect: 接続のオープンとクローズ
  • ConnTransact: 開始/コミット/ロールバック
  • ConnService: 特別なイベント
  • CmdPrepare: IFDPhysCommand.Prepare の呼び出し
  • CmdExecute: IFDPhysCommand.Execute または Open 呼び出し
  • CmdDataIn: コマンド パラメータ値
  • CmdDataOut: 結果セット行
  • AdaptUpdat: 更新のポスト処理の全情報
  • Vendor: 低レベル DBMS API の呼び出し
  • Component: 高レベル イベント

Q5: 何らかのデバッグが必要な場合、どのユニットおよびコードのどの部分で SQL 文を確認できますか。

A: 次のいずれかの方法を使って行うことができます。

  • 接続パラメータ MonitorBy を使用する。
  • FireDAC.pas を開き、TFDPhysCommand.Prepare メソッドを見つけます。そこに InternalPrepare メソッドの呼び出しが含まれています。 そこにブレークポイントを設定し、FDbCommandText フィールドの値を調べます。 これが、DBMS への送信時の SQL コマンド テキストになります。

Q6: パラメータとマクロがすべて置換された最終的な SQL 文を取得するには、どうすればよいでしょうか。

A: 「TFDQuery.Text」を参照してください。 なお、FireDAC では、最終的な SQL コマンド テキストでもパラメータ値は置換されていません。

Q7: 追跡出力を有効にしたら、アクセス違反エラーが続けざまに発生します。 どこが間違っているのでしょうか。 バグでしょうか。

A: FireDAC では、ODBC ベースのドライバについては、Microsoft ODBC ドライバ マネージャの追跡機能を使用します。 追跡出力を生成するため、このマネージャは内部的に C の RTL 関数 IsBadReadPtr/IsBadWritePtr を使用しますが、これらの内部でアクセス違反が発生しているおそれがあります。 この例外はマネージャの外部には伝播されませんが、IDE のデバッガはそこで停止します。 ただ無視してください。