什么错?在TForm.onClose里加入ADOQuery1.Close;可以解决吗?

解决方案 »

  1.   

    再2次用的时候也会包错,就是在adoquery1.close;的时候包错
      

  2.   

    那要看你的sql语句是什么了
    如果是select ...from....就用adoquery1.open;
    如果是别的请用adoquery1.excesql
      

  3.   

    只有SELECT才需要使用Open(需要返回值)
    其他的SQL语句象UPDATE、INSERT使用excesql(不需要返回值)
      

  4.   

    把你报错的信息贴出来让大家看看,很可能是你没有用select而是用其他同志说的那些update......之类的
      

  5.   

    我用adoquery或是query,
    adoquery1.close;
    adoqueyr1.sql.clear;
    str:=str+'where 字段名='+变量;
    adoquery1.sql.add('str');
    adoquery1.open;
    运行时就会出错:dataset 不是edit or insert状态。
      

  6.   

    Select....也是可以用EXECSQL的,OPEN和EXECSQL的区别是,前者代表返一个数据集,后都执行一项SQL操作。
      

  7.   

    adoquery1.Close;
    adoquery1.SQL.clear;
    adoquery1.sql.add('select * from tuserinfo where id='+inttostr(userid) +' and Passwd='+''''+userpas+'''');
    adoquery1.open;
    if adoquery1.Recordset.EOF  then
      Result:=false
    else
    begin
      Result:=true;
    end;
    这样的程序,运行2次包错,在我同事上面不会包错,我的机器是不是装了
    .net 的问题
      

  8.   

    再那个adoqueyr1.close上报错
    说有一个记录为真假,或删除的那个错误
      

  9.   

    你把这一句屏蔽掉看看:
    if adoquery1.Recordset.EOF  then
      Result:=false
    else
    begin
      Result:=true;
    end;报错信息原文呢?
      

  10.   

    建议将adoquery1.Recordset.EOF 改为adoquery1.EOF。
    在你朋友机器不报错有可能是因为所对数据表的记录不同导致。
      

  11.   

    你用的是5。0吧,5.0用ado对access操作有问题,就是什么真假的问题,不影响操作,6.0改正了这个错误
      

  12.   

    我的是对sqlserver操作的。