关闭时提示“在事务处理过程中,连接对对象不能被明确地切断”,问题是这样的,ADOConnection.true打开连接,这时网络断了下,一会又连接上了,再用ClientDataSet.ApplyUpdates(0)提交数据时,提示“communication link failure”,无法连接到数据库了,想要把数据库连接重新打开,但这时ADOConnection.false时提示“在事务处理过程中,连接对对象不能被明确地切断”,一直无法关闭,有什么解决办法,上面的错误都没关系,只要能把ADOConnection重新打开就行了
如果网断了就把ClientDataSet断掉连接
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
vList: TList;
begin
//断开连接
vList := TList.Create;
try
for i := 0 to ADOConnection1.DataSetCount - 1 do
begin
ADOConnection1.DataSets[i].Connection := nil
//记录连接的DataSet
vList.Add(ADOConnection1.DataSets[i]);
end;
//然后重新连接
ADOConnection1.Close;
ADOConnection1.Connected := True;
//重新设置关联
for i := vList.Count - 1 downto 0 do
TADODataSet(vList.Items[i]).Connection := ADOConnection1; finally
vList.Free;
end;
end;