DELPHI ERROR:多步操作发生器错误。检查每个状态值

时间:2013-07-15 17:07:51

标签: delphi ado

点击一个按钮时我有一个程序,它打开一个对话框来加载一些文件,然后将它添加到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;

3 个答案:

答案 0 :(得分:3)

啊......最后我找到了原因。它位于Access中的“字段大小”和Delphi中的AdoQuery中。两者的字段大小为50.当我将它们更改为255时,whola ....错误消失了....

基于我的结论,“多步操作发生器错误。检查每个状态值”的错误。对于我的情况是由FIELD SIZE引起的...谢谢^^

答案 1 :(得分:0)

当服务器端的值发生更改并且更改未在客户端上反映时,通常会发生此错误。例如,在插入触发器上/之前更改字段值时。 所以你只需要将 Adotable1.CursorLocation 更改为选项 clUseServer 。没有其他的。 祝你好运

答案 2 :(得分:0)

我有类似的经验,在一个实例中,当我合成了所需的SQL文本并且不关心别名时,ADO会自动使该别名(这是一个长名称)发生此错误。解决方案是直接在语句中提供别名,以绕过这个短时间。

相关问题