我是打算双击DBGrid的某一行来显示其详细页面的,不过老是第一次双击没问题,第二次双击就出错:
ADODataSet2 : cannot perform this operation on a closed dataset.
编译了运行是问题,但是第二次双击就弹出错误窗口:ADODataSet2 : cannot perform this operation on a closed dataset.确认后,不过还能运行?就是多了要确认一个错误信息procedure TForm2.DBGrid1DblClick(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;end;
ADODataSet2 : cannot perform this operation on a closed dataset.
编译了运行是问题,但是第二次双击就弹出错误窗口:ADODataSet2 : cannot perform this operation on a closed dataset.确认后,不过还能运行?就是多了要确认一个错误信息procedure TForm2.DBGrid1DblClick(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;end;
可能DataSet没post 再次操作失败
再者ADODataSet2 : cannot perform this operation on a closed dataset.来自Form1上的ADODataSet2
form1
creat show close 什么得都干吗了?
原因是这样:
你的数据集在一个窗体,而数据控件在另一个窗体,这样就极其容易产生上面的情况,甚至会出现无法刷新的情况,但它未必每次都出现;
解决的方法是将ADODataSet2放在Form1上。