|

楼主 |
发表于 2008-5-30 08:57:25
|
显示全部楼层
datasetxb.First;
while not(datasetxb.Eof) do
begin
wzbm:= datasetxb.FieldByName('wzbm').AsString;
datasettz.Append;
datasettz.FieldByName('pzbm').AsString:= datasetjb.FieldByName('rkdbm').AsString;
datasettz.FieldByName('wzbm').AsString:= datasetxb.FieldByName('wzbm').AsString;
datasettz.FieldByName('sfbz').AsString:= '0';
datasettz.Post;
IfLocalValue(wzbm,gsbm);
if flag <> 1 then
IfSeverValue(wzbm,gsbm);
datasetxb.Next;
else if FQry.RecordCount>1 then
begin
try
raise Exception.Create;
finally
DataSetWzkc.Close;
DataSetWzkc.Free;
DataSetXb.Close;
DataSetXb.Free;
DataSetTz.Close;
DataSetTz.Free;
DataSetJb.Close;
DataSetJb.Free;
end;
end;
finally
FQry.Free;
end;
end;
这是具体代码
大于1的情况是条件不满足的情况 为了能报错使这次回滚
所以我就raise了一个异常 但是在之前的数据全写进数据库了 并没有发生回滚 |
|