我用DELHPI调出ACCESS数据库中的记录执行,在把该记录执行完毕后,进行一些更新操作,如更新访问时间和访问标识?
代码如下:
const Systemdir=\\gxl\xml
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  s:string;
begin
   adoquery2.First;
 while not adoquery2.Eof  do
     begin
     for I := 0 to adoquery2.RecordCount-1 do
     begin
     s:=Systemdir+adoquery2.fieldbyname('filename').AsString;
     end;
     ExecuteParser(s);  //函数执行这个字符串
           adoquery2.Next;
       adoquery1.Close;
       adoquery1.SQL.Clear;
       adoquery1.SQL.Add('update xml set accesstime=(datetimetostr(now())) where filename='''+adoquery2.fieldbyname('filename').AsString+'''');
       adoquery1.SQL.Add('update xml set data=true where filename='''+adoquery2.fieldbyname('filename').AsString+'''');
       adoquery1.Prepared;
       adoquery1.ExecSQL;
     end;end;  
但是我在执行后却发现没有进行一些更新操作啊
出现“语法错误(操作符丢失)在查询表达式filename='590.xml'update xml set data=true where filename='590.xml'”的错误信息啊(在ACCESS数据库中存的是一些XML的文件名)

解决方案 »

  1.   

    语法错误,检查一下你的SQL语句
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
    begin
       adoquery2.First;
       while not adoquery2.Eof  do
         begin
           s:=Systemdir+adoquery2.fieldbyname('filename').AsString;
           ExecuteParser(s);  //函数执行这个字符串
           adoquery1.Close;
           adoquery1.SQL.Clear;
           adoquery1.SQL.Add('update xml set accesstime=(datetimetostr(now())),data=true where filename='''+adoquery2.fieldbyname'filename').AsString+'''');                             
           adoquery1.ExecSQL;
           adoquery2.Next;
         end;end;