DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xzzjr
今日帖子: 12
在线用户: 6
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 kssoft (涯天剑) ★☆☆☆☆ -
普通会员
2003/10/14 21:20:46
标题:
三层ADO+DCOM+SQL数据更新的问题!我现在不明白了,大家帮帮忙吧!救救我吧! 浏览:1899
加入我的收藏
楼主: 下面这段代码,是我系统销售开模块保存时用的,怪的就是有时可以保存成功,有时却不行,但惨就惨在保存失败的话,DELPHI却不会提示保存失败,还是以保存成功来处理,要怎么办啊!,我实在没分了,大侠们帮帮忙吧!
try
    DBJxcDisp.BeginTrans2;
    cOut.ApplyUpdates(0);
    cOut_Mx.ApplyUpdates(0);
    cPici.ApplyUpdates(0);
    bWorkItem:='商品销售单保存成功,单号:'+cOut.FieldValues['类']+IntToStr(cOut.FieldValues['销售单号']);
    DbBasDisp.AddLogBook('M_OutNew',bWorkItem,CurrentParam.userDm);
    DBJxcDisp.CommitTrans2;
  Except
    DBJxcDisp.RollbackTrans2;
    DbBasDisp.AddLogBook('M_OutNew','商品销售单保存失败',CurrentParam.UserDm);
    Application.MessageBox('保存失败,请再次保存!','系统提示',mb_iconinformation+Mb_OK);
    Abort;
  End;
----------------------------------------------
KsSoft
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/10/15 8:15:52
1楼: 你这是客户端的代码,写出你的服务端代码
----------------------------------------------
-
作者:
男 xibei (xibei) ★☆☆☆☆ -
盒子活跃会员
2003/11/21 16:46:31
2楼: 我也遇到过这个问题,一直没有解决,不得已改用SQL语句提交修改,很不方便。
客户端代码与楼主类似,服务器端没有特别代码,只是用一个ADOQuery+DataSetProvider连接为客户端提供数据(使用CommandText),在客户端作ApplyUpdates时,就会有时修改成功,有时不成功。很惨,在此求救,请各位大侠出手相助,小弟不胜感激!
----------------------------------------------
-
作者:
男 bryan (bao) ★☆☆☆☆ -
盒子活跃会员
2003/11/21 19:43:00
3楼: 应该在中间层启动交易,在中间层写方法,将你几个Clientdataset的detla作为
参数传入并启动交易更新,再将更新的结果(成功,失败等)传回客户端以指引
客户端的下一步动作.
----------------------------------------------
-
作者:
男 dtghh (宏) ★☆☆☆☆ -
普通会员
2003/11/24 14:29:23
4楼: 我谈一点自己的看法:
  1.ApplyUpdates方法不会报错一般返回错误记录个数, 所以服务端保存失败,你的代码也提示成功.
  2.我听说三层开发用DataSetProvider时不用再手工启动事务DBJxcDisp.BeginTrans2可能有问题.
  3.建议你在服务端做接口方法并捕获服务端错误返给客户端.
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS