起步软件技术论坛-X3

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

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

[复制链接]
 楼主| 发表于 2008-3-12 15:48:46 | 显示全部楼层
回复太慢了,我很急!请帮忙解决一下问题!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 16:39:38 | 显示全部楼层
我这个问题到底有没有处理,请给点回应吧。实在受不了了!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 17:56:48 | 显示全部楼层
数据库作为附件上传了
代码是在财务结算目录下的开票管理功能
里面的数据导航条中的保存按钮
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 17:57:27 | 显示全部楼层
附件上传不了 要不给个QQ号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 18:02:24 | 显示全部楼层
现在数据库上传到ftp上了 链接如下
http://61.152.94.76/download/biyundataback.rar
请下载
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-13 15:20:49 | 显示全部楼层
问一下,目前的情况怎么样?
回复 支持 反对

使用道具 举报

发表于 2008-3-13 15:46:39 | 显示全部楼层
数据库恢复了,那个开票功能也运行了,不知道该怎么填数据
代码太长了,一时很难看完

目前看下下面这个函数在出错时候没有把错误报处理,怀疑跟这个有关,你增加红色的代码看看
static function TDBCOMMAND.OpenSqlex(FSql:string;FQuery:TQuery):TQuery;
begin
  FQuery.CommandText:=FSql;
  try
    FQuery.Open;
    Result:=FQuery;
  except
    Result:=nil;
    FQuery.Free;
    raise;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2008-3-13 15:56:32 | 显示全部楼层
另外,跟编程习惯有关了,跟这个错误无关
               If lf_inv_available_valuta < lf_old_inv_fee Then
               begin
                 Business.Forms.Dialogs.ShowMessage('恢复结算单开票金额时出错:编号为' + ls_old_billid + '的结算单的已开票金额,不够扣减2。');
                 lQueryex.Connection.Transaction.Rollback(H);
                 SysUtils.Abort;
               end;
你可以写成
               If lf_inv_available_valuta < lf_old_inv_fee Then
                 raise Exception.Create('恢复结算单开票金额时出错:编号为' + ls_old_billid + '的结算单的已开票金额,不够扣减2。');

提交一个错误,自动就会停止后面代码的运行,执行Except里面的代码来回滚事务
回复 支持 反对

使用道具 举报

发表于 2008-3-13 16:00:32 | 显示全部楼层
另外,出现错误的时候,看看tomcat的黑窗口上有没有其他的错误显示
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-13 16:01:29 | 显示全部楼层
添加数据是这样:在发票头里面,客户要选普睿司曼电缆(上海)有限公司
然后点击 明细表中的结算单字段上的按钮,会弹出一个选择窗口,选择其中一条记录,按添加按钮就可以添加了,然后点确认返回主界面就可以保存了。
函数中加raise我先试一下再回帖,谢谢!

jiekou.jpg

143.62 KB, 下载次数: 203

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 23:25 , Processed in 0.044574 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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