点击一个按钮时我有一个程序,它打开一个对话框来加载一些文件,然后将它添加到AdoQuery(AQSource1)中。当我添加一些文件时,会出现此错误:
“多步操作发生器错误。检查每个状态值。”
仅当我添加多个文件时才选中。但是,如果我通过文件选择文件,则根本没有错误...但有时如果我选择多个文件,则此错误也不会显示......对我来说有点困惑......
如何解决这个问题?以简单的方式...
PS: 我使用Windows 7 Pro SP1 64位,Embarcadero Delphi 2010
procedure TFMain1.btImgLoad1Click(Sender: TObject);
var i : integer;
strFilename : string;
begin
if OpenDialog1.Execute then
begin
// Add selected file to DBase and show it on DBGrid
for i := 0 to openDialog1.Files.Count-1 do
begin
// ShowMessage(openDialog1.Files[i]);
strfilename := openDialog1.Files[i];
AQSource1.Append;
AQSource1source_fileurl.Value := strFilename;
AQSource1source_filename.Value := ExtractFileName(strfilename);
AQSource1source_dateadd.Value := date();
AQSource1source_timeadd.Value := Time();
AQSource1.Post;
AQSource1.Close;
AQSource1.Open;
end;
end;
end;
答案 0 :(得分:3)
基于我的结论,“多步操作发生器错误。检查每个状态值”的错误。对于我的情况是由FIELD SIZE引起的...谢谢^^
答案 1 :(得分:0)
当服务器端的值发生更改并且更改未在客户端上反映时,通常会发生此错误。例如,在插入触发器上/之前更改字段值时。 所以你只需要将 Adotable1.CursorLocation 更改为选项 clUseServer 。没有其他的。 祝你好运
答案 2 :(得分:0)
我有类似的经验,在一个实例中,当我合成了所需的SQL文本并且不关心别名时,ADO会自动使该别名(这是一个长名称)发生此错误。解决方案是直接在语句中提供别名,以绕过这个短时间。