各位大虾,你们好,在一般的添加代码是
with AdoQuery do
begin
close;
sql.Clear;
sql.Add('insert into sshjb(sshj_bh,sshj_mc,sshj_fdts)');
sql.Add('values(:bh,:mc,:fdts)');
parambyname('bh').AsString:=edit11.Text;
parambyname('mc').AsString:=edit12.Text;
parambyname('fdts').AsString:=edit13.Text;
execsql;
end;但是如果用commit....rollback呢
应该这样控制呢
小弟不胜感激
with AdoQuery do
begin
close;
sql.Clear;
sql.Add('insert into sshjb(sshj_bh,sshj_mc,sshj_fdts)');
sql.Add('values(:bh,:mc,:fdts)');
parambyname('bh').AsString:=edit11.Text;
parambyname('mc').AsString:=edit12.Text;
parambyname('fdts').AsString:=edit13.Text;
execsql;
end;但是如果用commit....rollback呢
应该这样控制呢
小弟不胜感激
解决方案 »
- 如何让TFilestream能从stream构造
- 怎么样把表另存为新文件名的表?
- Qreport里面的问题急呀急呀!!!!!!!
- 急救 用Sql server2000+Delphi已经集成为一个系统了 现在我想增加一个模块 怎么做?
- 请问怎么设置将flash的背景色过滤掉
- 数据库编程如何更好的结合面向对象
- 服务端不响应的问题,很棘手
- 如何在memo中载入一个word文档
- 使用delphi将一个最小化的窗口复原?
- 打印高手请进:一个打印的基础问题!30分也不少哟!
- “全局快捷键”与“锁定电脑”的相关问题!
- FASTREPORT问题!!!!!!!!高手解决!!!!!!!!!!跪请!!!!!!!!!
con1.CommitTrans;
con1.BeginTrans;
try
.....
.....
con1.CommitTrans;
finally
con1.RollbackTrans;
end;
try
...
CommitTrans
except
...
RollbackTrans
end;
...
...
上面的代码在两层的情况下可以通过代码如下
if data.ADOConnection1.InTransaction then
data.ADOConnection1.CommitTrans;
data.ADOConnection1.BeginTrans;
try
with data.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('execute pro_insert :@id,:@sch,:@dep,:@class');
Parameters.ParamByName('@id').Value:=edit_id.Text;
parameters.ParamByName('@sch').Value:=edit_sch.Text;
parameters.ParamByName('@dep').Value:=edit_dep.Text;
parameters.ParamByName('@class').Value:=edit_class.Text;
execsql;
sql.Clear;
sql.Text:='exec pro_sel';
open;
end;
finally
data.ADOConnection1.RollbackTrans;
end;
但是。如果是三层呢,可户端用的控件是 DCOMConnection1,ClientDataSet1,把上面 的代码应该如何改进呢
begin
ADOConnection1.begintrans; //事务开始
try
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('insert biao2(b1,b2,b3) values(''5'',''5'',5)');
adoquery2.ExecSQL;adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('insert biao1(b1,b3) values(''5'',5)');
adoquery2.ExecSQL;
ADOConnection1.committrans; //事务提交
MessageBox(handle,'chegn','提示信息框',MB_OK);
except
MessageBox(handle,'提示信息框','提示信息框',MB_OK);
ADOConnection1.rollbacktrans; //事务回滚
end;