ADOQuery执行查询时出现Cannot perform this operation on a closed dataset

解决方案 »

  1.   

    楼上的,明明是不能操作已关闭的数据集先打开数据集adoquery1.open;
      

  2.   

    再打开一下数据集就行了adoquery1.open;
      

  3.   

    你不会adoquery1没连接adoconnection吧
      

  4.   

    我是直接用connection string连的,所以应该不是那个问题.
    检查语句?
    不知道啊,情况是这样的:
    如果是一开始就执行查询就没有问题,但是执行了其他操作后再去查询就有问题了!
      

  5.   

    执行了其他操作后再去查询,你要重新写你的select SQL,然后OPEN
      

  6.   

    有啊,查询按钮里面的部分代码
     with ADOQ1 do
        begin
        close;
        SQL.Clear;
        SQL.Add('select * from jfqk where sjnf=:a');
        Parameters.ParamByName('a').Value:=Trim(sjnfCB4.Text);
        open;
     end;
      

  7.   

    单步调试下,估计你在哪个过程中关闭了该数据集吧。在“Add Watch”中设置一个跟踪变量
      

  8.   

    楼主是不是有意或无意把ADO的属性设成异步方式了?(缺省是同步)
      

  9.   

    adoquery1在close后connection string会空的。
    所以把connection string:=‘……’写在 with块中
      

  10.   

    if active then
    close;
    sql.text:=//////
    execute or open