在delphi里面,我执行sql语句
'if not exists (select 1 from Images where ImageID=:ImageID)
insert into Images(ImageID,nSize, nType, nWidth, nHeight, Data)
values(:ImageID,:nSize, :nType, :nWidth, :nHeight, :Data)
总出弹出'不正常地定义参数对象 提供了不一致'错误,百思不得其解,是怎么回事?
'if not exists (select 1 from Images where ImageID=:ImageID)
insert into Images(ImageID,nSize, nType, nWidth, nHeight, Data)
values(:ImageID,:nSize, :nType, :nWidth, :nHeight, :Data)
总出弹出'不正常地定义参数对象 提供了不一致'错误,百思不得其解,是怎么回事?
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(strSQL2); //進行插入操作
ADOQuery2.Parameters.ParamByName('ImageID').Value :=
adoquery1.FieldByName('nImage').AsInteger;
ADOQuery2.Parameters.ParamByName('nSize').Value :=
adoquery1.FieldByName('nSize').AsInteger;
ADOQuery2.Parameters.ParamByName('nType').Value :=
adoquery1.FieldByName('nType').AsInteger;
ADOQuery2.Parameters.ParamByName('nWidth').Value :=
adoquery1.FieldByName('nWidth').AsInteger;
ADOQuery2.Parameters.ParamByName('nHeight').Value :=
adoquery1.FieldByName('nHeight').AsInteger;
ADOQuery2.Parameters.ParamByName('Data').LoadFromStream(testStream,ftBlob); //讀取保存的內存圖
ADOQuery2.Prepared := True;
ADOQuery2.ExecSQL; 参数传递如上!
values(:ImageID,:nSize, :nType, :nWidth, :nHeight, :Data)
改成 这样试试
insert into Images(ImageID,nSize, nType, nWidth, nHeight, [Data])
values(:ImageID,:nSize, :nType, :nWidth, :nHeight, :AData)有可能 Data 是内部的关键字,造成的原因
if not exists (select 1 from PL_UserTable where UserID=6)
insert into PL_UserTable(UserID, UserName, UserPW, Grade)
values(6, '6666', '666', '')
是没问题的,不知道是不是这些参数:ImageID,:nSize, :nType, :nWidth, :nHeight, :Data的问题。哎!
insert into Images(ImageID,nSize, nType, nWidth, nHeight, Data)
values(:ImageID,:nSize, :nType, :nWidth, :nHeight, :Data)
where ImageID<>:ImageID
最好用不一样的把。
多谢各位的关注,结帖了!