create procedure p_name (@param1 type,@param2 type,@param3 type)
as
BEGIN TRAN
insert into table values (@param1,@param2,@param3)IF @@ERROR>0 GOTO err_label
IF @@TRANCOUNT > 0 COMMIT TRANerrLabel:
IF @@TRANCOUNT > 0
begin
ROLLBACK TRAN
end然后可以循环记录最简单的方式就是
将Query.LockType设置为ltBatchOptimistic
UpdateBatch(arAll);
用Adoconnect的事务处理
as
BEGIN TRAN
insert into table values (@param1,@param2,@param3)IF @@ERROR>0 GOTO err_label
IF @@TRANCOUNT > 0 COMMIT TRANerrLabel:
IF @@TRANCOUNT > 0
begin
ROLLBACK TRAN
end然后可以循环记录最简单的方式就是
将Query.LockType设置为ltBatchOptimistic
UpdateBatch(arAll);
用Adoconnect的事务处理
解决方案 »
- 如何安装DevExpress
- delphi5开发的Dcom在windows 2003 server上面配置
- 100分求,
- 是否有宏替换
- 多用户update数据时,不能保证完整性
- 多线程问题:多线程怎么销毁不了?
- 请教高手,如何获取某个独立应用程序的窗口中socket对象的句柄
- 各位大哥,有谁编过8031的内核啊,能和小弟交流一下吗,急啊!!!!!!!
- 谁能帮我把 BCB 的程序改成 Delphi 的?
- 请问是Locate快还是Filter快,针对大量数据的情况下?
- 我用的是DELPHI7.0 CLIENTDATASET 中文保存,中文过滤,中文LOCATE有问题吗
- SQLSERVER2000验证
如果楼主执意用一个事务来处理,那么就把一楼所说的方法中有关事务的东西去掉,令存储过程每次执行完后返回一个值给你的前台程序,而事务的启动在你的前台程序中写.
当后台返回的代码是表示失败时,前台就令事务回GUN,并让程序STOP后面的语句;
当5条记录每次都返回正常代码时,前台才令事务提交.
adoConn.BeginTrans;
adoConn.RoolTrans;
adoConn.CommitTrans;
好像是上面的语句.
还有,你要自己用代码去识别adoCOnn是否处于事务状态,好像是:
if adoConn.intrans...
之类的语句.
UpdateBatch(arAll);