try
...
adosj.post//adosj对应spck_cl_200812
try
adoquerym--对应spck_cl_zz
...
adoquerym.post-------------------------------------1
except
adosj.cancel;
abort;
end;
//如果是植入介入产品
保存对应信息到 spck_cl_zrgzx
adosbzy.post
adoquerym.edit;
adoquerym.post;//adoquerym
except
if application.messgebox('同类材料不能连续出库','提示',mb_yesno)=idyes then
....
else
adosj.cancel;
exit;
end;
if application.messgebox('保存成功,是否继续出库','提示',mb_yesno)=idyes then
出现的问题是有时候程序出问题时,只完成了1前的操作其余的都没做。该怎么改进啊?
...
adosj.post//adosj对应spck_cl_200812
try
adoquerym--对应spck_cl_zz
...
adoquerym.post-------------------------------------1
except
adosj.cancel;
abort;
end;
//如果是植入介入产品
保存对应信息到 spck_cl_zrgzx
adosbzy.post
adoquerym.edit;
adoquerym.post;//adoquerym
except
if application.messgebox('同类材料不能连续出库','提示',mb_yesno)=idyes then
....
else
adosj.cancel;
exit;
end;
if application.messgebox('保存成功,是否继续出库','提示',mb_yesno)=idyes then
出现的问题是有时候程序出问题时,只完成了1前的操作其余的都没做。该怎么改进啊?
var
i: integer;
begin
Result := false;
FConn.BeginTrans;
try
for i := 0 to Length(cSqlList) - 1 do
begin
FCommand.CommandText := cSqlList[i];
FCommand.Execute;
end;
FConn.CommitTrans;
Result := true;
except;
FConn.RollbackTrans;
end;
end;用事务和SQL语句来维护业备逻辑!
...
adosj.Connection.BeginTrans
adosj.post//adosj对应spck_cl_200812
try
adoquerym--对应spck_cl_zz
...
adoquerym.post-------------------------------------1
except
adosj.cancel;
abort;
end;
//如果是植入介入产品
保存对应信息到 spck_cl_zrgzx
adosbzy.post
adoquerym.edit;
adoquerym.post;//adoquerym
except
if application.messgebox('同类材料不能连续出库','提示',mb_yesno)=idyes then
....
else
adosj.cancel;
exit;
adosj.connection.commit;
end;
if application.messgebox('保存成功,是否继续出库','提示',mb_yesno)=idyes then
出现的问题是有时候程序出问题时,只完成了1前的操作其余的都没做。该怎么改进啊?// 加一個事務,讓他們起完成,否成就回滾掉