用adoquery
select语句没问题
但是,update,insert,都不行,程序崩溃,
错误信息为 cannot perform this operation on a closed dataset
  
不管用open还是execsql都是这个错误,我的RoomQ为adoquery控件的active已经设置为true,真不知道该怎么办了
  这是我的代码 
  with RoomQ do
  begin
    close;
    sql.clear;
    sql.add('update 房间信息 set 房间状态=0 where 房间名称='''+RoomComboBox.Text+''' ');
    ExecSQL;
    first;
  end;
  
  虽然有错,可是对数据库得操作是正确的

解决方案 »

  1.   

    first;?
    老大,execsql是不会返回数据集的,当然回出错了。把first;改为//first;就OK
      

  2.   

    如果要想有返回值..
    请用query.open
      

  3.   

    good,解决,再问一下:first具体完成什么功能,他需要什么条件
      

  4.   

    那么上面把first去掉,指针是不是就指在了更新的地方,怎么把它重新指向第一条记录
      

  5.   

    to amartapple(amartapple):
    既然不返回数据集,何来的指在什么更新的地方呢?就算是返回数据集的open操作,刚刚open完后,他的记录指针是停在第一条记录上的,不用你加什么first。