对数据库有新增、删除、修改操作的
以接口调用,中间层应用事务如下:
//执行修改
Function FuncQueryExec(I_Sql :WideString;I_TransBz :boolean):boolean;
Function FuncQueryExec(I_Sql :WideString;I_TransBz :boolean):boolean;
var
V_Query :TADOQuery;
begin
Result :=false;
V_Query :=TADOQuery.Create(nil);
V_Query.Connection :=G_ADOCn;
if I_TransBz then
begin
PubProcStartNewTransaction(G_ADOCn);
V_Query.Close;
V_Query.SQL.Text :=I_Sql;
try
V_Query.ExecSQL;
except
//on G_ADOCn.Errorsdo
//on e:Errorsdo
begin
//异常处理
G_ADOCn.RollbackTrans;
ProcErrorHandle(G_ADOCn.Errors,false);
V_Query.Free;
exit;
end;
end;
try
G_ADOCn.CommitTrans;
except
begin
//异常处理
G_ADOCn.RollbackTrans;
ProcErrorHandle(G_ADOCn.Errors,false);
V_Query.Free;
exit;
end;
end;
end
else
begin
V_Query.Close;
V_Query.SQL.Text :=I_Sql;
try
V_Query.ExecSQL;
except
//on e:EADOErrordo
begin
//异常处理
ProcErrorHandle(G_ADOCn.Errors,false);
V_Query.Free;
exit;
end;
end;
end;
Result :=true;
end;