有这样一个语句:
  if ADOTable1.Active
    then ADOTable1.Close;
当程序走到这个句子的时候,ADOTable的状态是Active,State是dsBrowsing,
但是一旦操作then语句,就会弹出“can't perform this operation on a closed dataset。
这是为什么呢?

解决方案 »

  1.   

    if ADOTable1.Active then
       ADOTable1.Acitve:=false;
      

  2.   

    楼主要实现什么功能?怎么ADOTable一激活就要关闭呢?
      

  3.   

    if ADOTable1.State <>dsInactive then
      ADOTable1.Close;
      

  4.   

    我的意思是如果ADOTable如果仍然开着,就给他关了,是不是这样写不对阿?
      

  5.   

    那你要却保adoquery1.open了
    if adotable1.open then
      adotable1.close;
    你在form的onclose中写
      

  6.   

    if ADOTable1.State <>dsInactive then
      ADOTable1.Close;dsInactive Dataset is closed, so its data is unavailable表示数据集目前在关闭状态!!dsInactive 
      

  7.   

    直接就adotable1.close不就行了,判断不判断没什么意义
      

  8.   

    同意楼上两位的,楼主的目的是关掉adotable,直接关就OK了。
    先判断好象吃力不讨好。