起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: liso

[请求]在一个事务中多次更新同一记录的问题**

[复制链接]
 楼主| 发表于 2008-3-17 12:38:46 | 显示全部楼层
好的,谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-3-27 13:52:31 | 显示全部楼层
楼主最好单独用一个button来提交事务,这样在逻辑上很清楚
button的click事件中的代码请参考28楼的说明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-27 15:06:39 | 显示全部楼层
我们现在代码已经都改好了,就是只能用非立即方式的事务来做不会报错.
用立即事务的方式报错,见下图

baocuo1.jpg

9.97 KB, 下载次数: 133

回复 支持 反对

使用道具 举报

发表于 2008-3-27 16:03:17 | 显示全部楼层
这和楼上的错误一样啊,是服务器出现了错误,但是返回的错误信息不正确。

需要查看服务器的日志。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 16:41:16 | 显示全部楼层
贾老师,我测试过了,如果使用立即事务方式:H := lQueryex.Connection.Transaction.Start(True);
在做查询的时候没有问题,但是一执行更新语句就报错了.
就算sql语句没有问题,如下
sql: UPDATE EXP_BILL_DETAIL SET  EBD_InvServiceCharge = EBD_InvServiceCharge + 0 ,EBD_InvFitmentCharge = EBD_InvFitmentCharge + 13740 ,EBD_InvOtherExpenses = EBD_InvOtherExpenses + 0 ,EBD_InvMagrofCardFee = EBD_InvMagrofCardFee + 0 ,EBD_InvVacantRent = EBD_InvVacantRent + 0 ,EBD_InvTotalAmount = EBD_InvTotalAmount + 13740 ,EBD_STATUS = '40' WHERE EBD_MAINID = '0000000073' AND EBD_CONTRACT = 'C000000072' AND EBD_PAYMENT_FLAG = '10'
这句sql我在非立即事务方式里面是执行成功的,在sqlserver查询分析器里面也执行成功的
回复 支持 反对

使用道具 举报

发表于 2008-3-31 16:57:12 | 显示全部楼层
楼主,请把服务端的日志提供一下吧,现在从客户端看不到问题的具体原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-1 13:29:16 | 显示全部楼层
日志

catalina.2008-03-31.rar

703 Bytes, 下载次数: 80

回复 支持 反对

使用道具 举报

发表于 2008-4-1 17:21:40 | 显示全部楼层
楼主,只有附件中那一点信息吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 09:12:19 | 显示全部楼层
只有那么多了,31号就那一个文件
回复 支持 反对

使用道具 举报

发表于 2008-4-2 15:34:28 | 显示全部楼层
楼主,参考这个帖子,使用log4j搜集些更详细的日志吧。
http://bbs.justep.com/forum.php? ... 7%D6%CF%ED%2Atomcat
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 01:32 , Processed in 0.038500 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表