1

我有一个程序,当单击一个位按钮时,它会打开一个对话框来加载一些文件,并将其添加到 AdoQuery (AQSource1) 中。当我添加一些文件时,出现此错误:

“多步操作生成器错误。检查每个状态值。”

仅当我添加选择的多个文件时。但是,如果我按文件选择一个文件,则根本没有错误......但有时如果我选择多个文件,这个错误也不会出现......对我来说有点困惑......

如何解决这个问题?以简单的方式...

PS:我使用的是 Windows 7 Pro SP1 64bit,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;
4

3 回答 3

4

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

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

于 2013-07-16T09:37:26.593 回答
1

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

于 2016-09-15T06:08:26.883 回答
0

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

于 2020-10-03T07:33:34.573 回答