我用的是adoconnection,adoquery,dbgrid,
我也不知道什么时候会出来一个错误,这个错误是这样的:adoquery1:cannot perform this operation on a closed dataset.请帮帮忙,这是怎么回事?是什么导致这样的?

解决方案 »

  1.   

    1.可能是用adoquery1对另一个adoquery进行查询,这是不允许的
    2.可能是你要对adoquery1进行编辑操作如:添加、修改、删除等,而adoquery1处于关闭状态
      

  2.   

    adoquery处于关闭状态
    应该adoquery.open 后 adoquery.edit;
      

  3.   

    cannot perform this operation on a closed dataset.
    英语再差劲也能看懂这个吧?为什么不检查你的数据集呢?
      

  4.   

    adoquery处于关闭状态
    应该adoquery.open 后 adoquery.edit;
      

  5.   

    你在对数据集adoquery进行编辑时,adoquery必须在打开状态在,
       先检查adoconnection有没有打开,然后检查adoquery有没有打开。
      

  6.   

    我碰到类似一个问题
    控件之间的关系如下
    [DataModule1]
    ADOConnection
    [Form1][Form2]
    ADOQuery1---DataSource1---Dbgrid1ADOQuery2Form1是MDIForm 
    Form2是Dll工程里的一个窗体
    Form1中加载Form2所在的Dll 传入Application.Handle及ADOConnection1调用Dll里的过程建立MDIChild Form2
    设置
    Form2.ADOQuery1.Connection=Form2.ADOQuery1.Connection=ADOConnection1这时候问题来了
    ADOQuery1.Open ...
    .
    .
    .
    ADOQuery2.Open ...
    ADOQuery2.Close
    ADOQuery1.Edit //在这里报错错误是
    adoquery1:cannot perform this operation on a closed dataset.
    这是为什么?