4

DevartTMSQuery.SQL内にパラメーターを含むクエリがあります。何かのようなもの

select * from customers
where customer = :CustomerID

コードで私はします

// Delphi
sqlcustomer.ParamByName('CustomerID').asinteger := 4;
sqlcustomer.open;

サーバーに送信された正確なSQLコマンドをデバッグして確認したいのですが、TMSQuery.sqlを使用しようとすると、:CustomerIDだけが表示されますが、次のようにします。

select * from customers
where customer = 4

すべてのパラメーターを読み取ったり、クエリを何度も再構築したりせずに、これをすばやく実行する方法はありますか?

もちろん、100を超えるパラメーターを含む非常に大きなクエリがあります。これが、これが必要な理由です。

4

2 に答える 2

4

サーバーに送信されるパラメーター化されたクエリの実際のSQLステートメントには、パラメーター値のテキスト表現が含まれることはありません。代わりに、疑問符などのプレースホルダー文字を使用します。あなたの例では、これは次のようになります。select * from customers where customer = ? これはサーバー上で準備され、パラメーター値はクライアントによって別の呼び出しで送信されます。

于 2010-09-02T09:52:34.537 に答える
3

Devart コンポーネントを使用している場合は、役立つ TMSSQLMonitor コンポーネントがあります。odbc 経由で接続している場合は、odbc タブでトレースをオンにすることで、SQL を監視できます。

他の組み合わせを使用している場合は、説明してください。

于 2010-09-02T09:59:57.630 に答える