0

私のDelphi 2006 TADOCommandには

    CommandText (パラメーターを含む)、  
     Prepared (True)、  
     ParamCheck (True)

プロパティはすべて設計時に設定されます。

これらの変更に対応するためにCommandTextを変更することなく、実行時にそのパラメーターの一部を削除する方法はありますか。これは、パラメーターが参照するテーブル列の一部が更新/挿入を必要としない場合に望ましいものです。

の線に沿って何かを考えている

TADOCommand.Parameters.ParamByName('MyParam').SafelyRemove;

どうもありがとう、
ダンカン

4

3 に答える 3

4

パラメータコレクションの各項目は、コマンドテキストのパラメータマーカーに対応しています。これは、このマーカーのAPIのようなものです。パラメータからアイテムを削除しても、対応するマーカーは削除されません。コマンドテキストの一部のフィールドに触れる必要がない場合は、コマンドテキストを変更し、対応するパラメータマーカーを削除する必要があります。

コマンドテキストが準備されると、DBMSはコマンド実行計画を作成し、コマンド実行に必要ないくつかのリソースを割り当てます。コマンドテキストを変更する場合、DBMSは新しいコマンド実行プランを作成する必要があります。

そのような...

于 2010-10-12T03:33:29.103 に答える
0

コマンドテキストが動的に更新可能である場合、私は通常、次のようなパラメータを使用します。* Parameters.Clear; Parameters.ParseSQL(ADOCommand.CommandText、true); *正しいパラメータ名でパラメータリストを自動的に作成します。

于 2010-10-22T11:57:52.003 に答える
0

パラメーター プレースホルダー (:PARAMn) は SQL テキストに埋め込まれているため、CommandText を変更せずにパラメーターを追加または削除する方法がわかりません。不一致があります。

于 2010-10-12T17:05:09.387 に答える