procedure TForm1.Timer1Timer(Sender: TObject);
var v_mobile string;
begin
  with adoquery1 do
         sql.Clear;
         sql.add(update XB_Command_Send set state=0 where mobile='''+v_mobile+''' and   state=1');
         open;
end;
     
 我就是要在1秒扫描一次数据表下的时钟更新XB_Command_Send表,不过这样有错,它说Project1.exe raised exception class EDatabaseError with message'adoquery1:commandText does not return a result set....'
 我有数据在表中,但是就是会出错,不知是不是表中数据被扫描完了后,就会这样,还是?能不能帮我设计一个except,当state=1被更新完了,这个时钟还要走,在update时不会出错啊。谢谢!!!

解决方案 »

  1.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    var v_mobile string;
    begin
      with adoquery1 do
             sql.Clear;
             sql.add(update XB_Command_Send set state=0 where mobile='''+v_mobile+''' and   state=1');
             ExecSql;////open;更新用ExecSql;
    end;
      

  2.   

    楼上好快!
    用 select 语句的时候用 Open
    用 update、insert 语句的时候用 ExexSQL
      

  3.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    var v_mobile string;
    begin
      with adoquery1 do
             Close;
             sql.Clear;
             sql.add(update XB_Command_Send set state=0 where mobile='''+v_mobile+''' and   state=1');
             ExecSql;
    end;