Delphi 2007とMSSQL Server 2008を使用してこのエラーが発生する可能性があり、回避策が見つかりました。
:私はそれを修正する2つの方法を見つけ
with TADOQuery.Create(nil)
do try
Connection := ADOConnection;
SQL.Text := ' (SELECT * FROM Stock WHERE InvCode = :InvCode) '
+' (SELECT * FROM Stock WHERE InvCode = :InvCode) ';
Prepared := true;
Parameters.ParamByName('InvCode').Value := 1;
Open; // <<<<< I get the "parameter object is...etc. error here.
finally
Free;
end;
:(これはあなたが同じことによるものであれば、かなり安っぽい私見ですが、あなたに多分その便利。)エラーを生成する
コード
1)すなわち、SQLからブラケットを取り外す:
SQL.Text := ' SELECT * FROM Stock WHERE InvCode = :InvCode '
+' SELECT * FROM Stock WHERE InvCode = :InvCode ';
2)は、2つのパラメータの代わりにのいずれかを使用:
を0
with TADOQuery.Create(nil)
do try
Connection := ADOConnection;
SQL.Text := ' (SELECT * FROM Stock WHERE InvCode = :InvCode1) '
+' (SELECT * FROM Stock WHERE InvCode = :InvCode2) ';
Prepared := true;
Parameters.ParamByName('InvCode1').Value := 1;
Parameters.ParamByName('InvCode2').Value := 1;
Open; // <<<<< no error now.
finally
Free;
end;
@Mason - パラメータを使用していますか?そうでない場合は、ParamCheck:= Falseが設定されますか? –
私はパラメータを使用しています。 –