存在しないパラメーターに対してParamByNameを呼び出すとどうなりますか?
-
28-10-2019 - |
質問
私はDelphiを初めて使用し、次のコードを受け取りました(いくつかの無関係な部分は省略しました)。これについて、Delphiの機能を理解しようとしています。 ジェネラコディセタグプレ
別のファイルでは、そのクエリが使用されていますが、クエリで定義されていないパラメータが追加されています。 ジェネラコディセタグプレ
このパラメータ'part'
は、行われた選択について何か変更しますか?言い換えると、SQLクエリは自動的に次のように変更されますか?
ジェネラコディセタグプレ
解決
つまり、SQLステートメントは実行時に変更される可能性があります。したがって、そのクエリが使用されると、SQLにはすでにAND part = :part
が含まれています。
SQLステートメントにこの追加パラメーターpart
が含まれていない場合、ParamByName('part').Value := 1
を割り当てるときに例外が発生します。
SelectCosts
リファレンス(DM_HRV
にあり、他のDMにはない)を混同していないと思います。
他のヒント
投稿の次のステートメントはパラメータを追加せず、その値を設定します: ジェネラコディセタグプレ
実行時にパラメータを追加するには、次のようにCreateParamを使用します。 ジェネラコディセタグプレ
クエリは自動的に変更されません。自分で変更する必要があります。
最初のスニップでは、ParamTypeとInputTypeが定義されていません。パラメータリスト(Params)プロパティエディタにアクセスし、それらの値を更新することで、IDEで変更できます。
新しいパラメータを追加しても、クエリは変更されません。自分でやらなければなりません。