ADODataSet2 : cannot perform this operation on a closed dataset.procedure TForm2.DBGridEh1DblClick(Sender: TObject);
begin
  ADODataSet2.Active:=False;
  ADODataSet2.Parameters.ParamByName('CNo').Value:=                             ADODataSet1.FieldByName'CNo').Value;  //说ADODataSet2关无法运行这行
    
  ADODataSet2.Active:=True;
  ADODataSet2.Open;
  ADODataSet2.Edit;
  Form1.ShowModal;
end;
不过程序仍然能运行,我原来也这样;

解决方案 »

  1.   

    ADODataSet2.Parameters.ParamByName
    晕,是在这句前面加上open
    同志
      

  2.   

    ADODataSet2.Active:=False;
    后面
    got it?
      

  3.   

    是这句话需要open,在它前面加上
    ADODataSet1.open;
    ADODataSet2.open;
    ADODataSet2.Parameters.ParamByName('CNo').Value:=ADODataSet1.FieldByName'CNo').Value;
      

  4.   

    在它前面加上
    ADODataSet1.open;
    ADODataSet2.open;
    还是不行啊
      

  5.   

    在它前面加上ADODataSet2.open;后
    这句就不起作用了,
    ADODataSet2.Parameters.ParamByName('CNo').Value:=ADODataSet1.FieldByName'CNo').Value;是不是delphi7 的bug阿,晕....
      

  6.   

    是这句话需要ADODataSet1.open,在它前面加上
    ADODataSet1.open;
    ADODataSet2.Parameters.ParamByName('CNo').Value:=ADODataSet1.FieldByName'CNo').Value;
    ADODataSet2.open;
      

  7.   

    procedure TForm2.DBGridEh1DblClick(Sender: TObject);
    begin
      ADODataSet1.open;
      ADODataSet2.close;
      Adodataset2.commandText:='select * from report where CNo =  :CNo';
      ADODataSet2.Parameters.ParamByName('CNo').Value:=
        ADODataSet1.FieldByName('CNo').Value;
      ADODataSet2.Open;
      ADODataSet2.Edit;
      Form1.ShowModal;
    end;
      

  8.   

    ADODataSet1.open 和 ADODataSet2.open 后,要判断里面有没有数据
    用 if ADODataSet1.RecordCount > 0 then
    或者 if not ADODataSet1.IsEmpty then
      

  9.   

    ADODataSet2.Active:=False;
      ADODataSet2.Parameters.ParamByName('CNo').Value:=                             ADODataSet1.FieldByName'CNo').Value;  //说ADODataSet2关无法运行这行
        
      ADODataSet2.Active:=True;
      ADODataSet2.Open;
      ADODataSet2.Edit;
      Form1.ShowModal;
    先看你写的代码 ,其实很简单为什么会报错:在数据集关闭的时候无法操作
    问题显而意见,你是否将ADODATASET1打开