原来的语句是没有问题的:
procedure THTXX.DataSetHTFKAfterCommit(DataSet: TDataSet);
var
queryJE : Tquery;
begin
queryJE:= TQuery.Create(self);
with queryJE do
queryJE.ConnectionString := 'DATABASEURL=Biz:\MASTERMIND\mastermind.Database';
queryJE.CommandText := 'update HT set HT.LJFKJE=(select sum(HTFK.FKJE) from HTFK where HTFK.HTBH=:HTBH) where HT.HTBH=:HTBH';
queryJE.Params.ParamByName('HTBH').AsString :=DataSetHTFK.FieldByName('HTBH').AsString;
queryJE.Execute;
end;
于是报错了:
procedure THTXX.DataSetHTFKAfterCommit(DataSet: TDataSet);
var
queryJE : Tquery;
begin
queryJE:= TQuery.Create(self);
with queryJE do
queryJE.ConnectionString := 'DATABASEURL=Biz:\MASTERMIND\mastermind.Database';
queryJE.CommandText := 'update HT set HT.LJFKJE=(select sum(HTFK.FKJE) from HTFK where HTFK.HTBH=:HTBH) where HT.HTBH=:HTBH';
queryJE.Params.ParamByName('HTBH').AsString :=DataSetHTFK.FieldByName('HTBH').AsString;
queryJE.Execute;
DataSetHT.Open;
DataSetHT.Refresh; ////这是报错行
DataSetHTCB.Open;
DataSetHTCB.Refresh;
end;
我把这两句换了下位置,报错的位置没变,奇怪了:
procedure THTXX.DataSetHTFKAfterCommit(DataSet: TDataSet);
var
queryJE : Tquery;
begin
queryJE:= TQuery.Create(self);
with queryJE do
queryJE.ConnectionString := 'DATABASEURL=Biz:\MASTERMIND\mastermind.Database';
queryJE.CommandText := 'update HT set HT.LJFKJE=(select sum(HTFK.FKJE) from HTFK where HTFK.HTBH=:HTBH) where HT.HTBH=:HTBH';
queryJE.Params.ParamByName('HTBH').AsString :=DataSetHTFK.FieldByName('HTBH').AsString;
queryJE.Execute;
DataSetHTCB.Open;
DataSetHTCB.Refresh; ///报错的位置
DataSetHT.Open;
DataSetHT.Refresh;
end;