|

楼主 |
发表于 2009-9-24 11:14:31
|
显示全部楼层
另外一个代码
procedure TMainForm.Button5Click(Sender: TObject);
var
h:TTransactionHandle;
begin
DataSetBroker1.DataSet.First;
while not DataSetBroker1.DataSet.Eof do
begin//111111111111111111
if DataSetBroker1.DataSet.FieldByName('XD').AsInteger = 1 then
begin //2222222222222222
h:=Transaction1.Start(true);
try //ÊÂÎñ¿ØÖÆ
Query1.Close;
Query1.CommandText := 'update WPRKZB set SHBZ = 1 where BH =:a ';
Query1.Params.ParamByName('a').AsString := DataSetBroker1.DataSet.FieldByName('BH').AsString;
Query1.Execute;
Query4.Close;
Query4.CommandText := 'select * from WPRKMXB where BH =:a ';
Query4.Params.ParamByName('a').AsString := DataSetBroker1.DataSet.FieldByName('BH').AsString;
Query4.Open;
Query4.First;
while not Query4.Eof do
begin //333333333333333
// ÐèÒªÐÞ¸Ä
Query2.Close;
Query2.CommandText := 'select WLDM from CKB where WLDM = :a';
Query2.Params.ParamByName('a').AsString := Query4.FieldByName('WLDM').AsString;
Query2.Open;
if Query2.IsEmpty then
begin
Query3.Close;
Query3.CommandText := 'insert into CKB (WLDM,SJKC,XNKC) values(:a,:b,:d)';
Query3.Params.ParamByName('a').AsString := Query4.FieldByName('WLDM').AsString;
Query3.Params.ParamByName('b').AsFloat := Query4.FieldByName('SL').AsFloat;
Query3.Params.ParamByName('d').AsFloat := Query4.FieldByName('SL').AsFloat;
Query3.Execute;
end
else
begin
Query3.Close;
Query3.CommandText := 'update CKB set SJKC = SJKC + :b,XNKC= XNKC + :d where WLDM = :a ';
Query3.Params.ParamByName('a').AsString := Query4.FieldByName('WLDM').AsString;
Query3.Params.ParamByName('b').AsFloat := Query4.FieldByName('SL').AsFloat;
Query3.Params.ParamByName('d').AsFloat := Query4.FieldByName('SL').AsFloat;
Query3.Execute;
end;
Query4.Next;
end; //333333333333333333333
Transaction1.Commit(h); //ÊÂÎñ¿ØÖÆ
except
Transaction1.Rollback(h); //»Ø¹öÊÂÎñ£¬µ±Ö´ÐвÙ×÷ʧ°Ü»òÌá½»³ö´íºóÖ´ÐÐ
Dialogs.ShowMessage('Êý¾Ý¸üÐÂʧ°Ü,ÇëÄúÖØÐÂÈë¿â!') ;
end; //Èç¹ûûÓÐÈë¿â,¸üÐÂÈë¿âÊý¾Ý00000001
DataSetBroker1.DataSet.Next;
end //22222222222222
else
begin
DataSetBroker1.DataSet.Next;
end;
end; //1111111111111111
DataSetBroker1.DataSet.Refresh;
DataSetBroker2.DataSet.Refresh;
Dialogs.ShowMessage('ÉóºË³É¹¦!') ; |
|