现象:

'select a.WOD_No, a.WOM_FileLength,a.WOM_YanBuLength as WOM_Length,  a.My_YDP,a.My_YDPL,a.My_JDMS,a.My_JDL,a.My_ZJDL,a.My_JDYY   from WorkOrder_Detail a where isnull(a.WorkOrder_SFXZKC,0)=0 and   a.WOM_YanBuDatetime between '2014-04-11 17:38:29' and '2014-04-11 17:40:29''

在客户端用上面的语句取得数据,然后修改数据,通过RO的web service提交数据失败;

'select *  from WorkOrder_Detail a where isnull(a.WorkOrder_SFXZKC,0)=0 and   a.WOM_YanBuDatetime between '-- ::' and '-- ::'‘

在客户端用上面的语句取得数据,然后修改数据,通过RO的web service提交数据成功。

下面是保存提交数据code:

  Deltas := DeltaArray.Create;
try
if cds_MasterData_calc.ChangeCount > then
begin
delta := Deltas.Add;
tmp_sql := cds_MasterData_calc.CommandText;
delta.ASQL := tmp_sql;
delta.Delta := BinaryFromVariant(cds_MasterData_calc.Delta);
end;
if Deltas.Count> then
begin
with DM.MyDM do
begin
svc := CoDBCommonService.Create(ROBinMessage,ROWinInetHTTPChannel);
if svc.ApplyUpdates(Deltas) then
begin
if cds_MasterData_calc.ChangeCount > then cds_MasterData_calc.MergeChangeLog;
ShowMessage(MSG_Saver_ok);
end
else
ShowMessage(MSG_Saver_err);
end;
end;
finally
Deltas.Free;
end;

结果说明(貌似):

与后台Tdatesetprovider的更新方式有关。这里默认的UpdateMode=upWhereAll,是最苛刻的。估计是当所选数据不能满足upwhereall是出现保存失败。事情得过且过。没精力时间去测试探究出正在原因。

如果你知道请告诉我。

==================

看跟踪就明白Tdatesetprovider是如何干的,就明白为什么会有写失败的原因:

update [WorkOrder_Detail]  set
[WOD_No] = :1,
[WOM_FileLength] = :2
where
[WOD_No] = :3 and
[WOM_No] = :4 and
[WOM_ThisBarcode] = :5 and
[WOM_JH] = :6 and
[WOM_PH] = :7 and
[WOM_FileLength] = :8 and
[WOM_Length] = :9 and
[WOM_XiaJiDatetime] = :10 and
[WOM_ParentNo] = :11 and
[WOM_SFMJ] = :12 and
[WOM_Grade] is null and
[CD_Name] is null and
[PL_Code] is null and
[PL_Name] = :13 and
[WOD_KCR] = :14 and
[WOD_PLName] = :15 and
[WOD_SFMX] is null and
[WOD_ShortMess] is null and
[WOD_ShortMessTime] is null and
[WRD_Sender] is null and
[WKR_WFXML] = :16 and
[WOM_YanBuLength] = :17 and
[WOM_YanBuDatetime] = :18 and
[CDC_workgroup] = :19 and
[WOM_HX] is null and
[WOM_JS] is null and
[WOM_WS] is null and
[WorkOrder_SFXZKC] is null and
[My_YDP] is null and
[My_YDPL] is null and
[My_JDMS] is null and
[My_JDL] is null and
[My_ZJDL] is null and
[My_JDYY] is null
:1(String[],IN)='A99CE994808B49699AAAE76F78F282BA'
:2(Float,IN)=210
:3(String[],IN)='16E565AD41FE4FDAAD9CD81DA061D791'
:4(String[],IN)='00AB736331D848FF95F296AE78560E39'
:5(String[],IN)=''
:6(String[],IN)='A919'
:7(String[],IN)=''
:8(Float,IN)=211
:9(Float,IN)=101.07
:10(DateTime,IN)=2014-02-21 13:02:29
:11(String[],IN)='-1'
:12(Boolean,IN)=True
:13(String[],IN)='5-打包'
:14(String[],IN)='余冬琴'
:15(String[],IN)='1-验布'
:16(String[],IN)='单志连'
:17(Float,IN)=101.07
:18(DateTime,IN)=2014-02-21 14:38:46
:19(String[],IN)='[ {emp_bm:'1121',name:'卞玉琴'}, {emp_bm:'1122',name:'余冬琴'}]'
 

ro多层的事务处理失败的困惑的更多相关文章

  1. Java事务处理全解析(二)——失败的案例

    在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例. BankService ...

  2. Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)

    在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的.在本篇文章中,我们将引入另外 ...

  3. Java事务处理全解析(三)——丑陋的案例

    在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connectio ...

  4. Java事务处理全解析(一)——Java事务处理的基本问题

    Java中的事务处理有多简单?在使用EJB时,事务在我们几乎察觉不到的情况下发挥着作用:而在使用Spring时,也只需要配置一个TransactionManager,然后在需要事务的方法上加上Tran ...

  5. mount失败

    又一次遇到mount失败,提示文件系统类型错误.选项错误.有坏超级块等.之前是在ubuntu 14.04 lts desktop上挂载windows下共享文件夹遇到的.这次具体的环境如下:CentOS ...

  6. Spring事务处理探究

    开发环境: OS:windows XP       Web Server: jakarta-tomcat-5.0.28       DataBase Server: MS SQL Server 200 ...

  7. MYSQL 基本SQL语句

    复制表结构 CREATE TABLE 新表 SELECT * FROM 旧表 where 1=2 复制表结构和数据CREATE TABLE 新表 SELECT * FROM 旧表 查询重复数据: se ...

  8. Python 3.x 连接数据库(pymysql 方式)

    ==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...

  9. 个人查阅资料-Sql语句

    SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRAN ...

随机推荐

  1. 一个效果非常华丽的仿桌面APP,却胜似Launcher

    开发Android APP的同学是否对于Launcher实现的绚丽效果而痴迷呢?什么.连Android Launcher是什么都不知道.好吧,拿起侬的手机.在解锁后的首页界面上左右滑动滑动,体验体验, ...

  2. 开发DataSnapserver

     在上次的文章中讨论了怎样把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSONserver.在本篇文章中让我们正式讨论怎样使用Delphi XE开发DataSnap/REST ...

  3. [NOI 2003] 逃学的小孩

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1509 [算法] 树的直径 [代码] #include<bits/stdc++. ...

  4. B3403 [Usaco2009 Open]Cow Line 直线上的牛 deque

    deque真的秀,queue和stack...没啥用了啊.操作差不多,就是在前面加一个front||back_就行了. 题干: 题目描述 题目描述     约翰的N只奶牛(编为1到N号)正在直线上排队 ...

  5. ”W: GPG 错误:http://ppa.launchpad.net lucid Release: 由于没有公钥,无法验证下列签名:“的问题

    在安装更新时,即在运行,命令行sudo apt-get update 或者运行更新管理器的时候,出现如下错误: W: GPG 错误:http://ppa.launchpad.net lucid Rel ...

  6. .sh文件 编写格式

    http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html 介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号# ...

  7. poj3071Football(概率期望dp)

    Football Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5620   Accepted: 2868 Descript ...

  8. Cracking the Coding Interview 6.5

    There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. If it ...

  9. MySQL实现递归查询

    DROP FUNCTION IF EXISTS queryChildrenCaseInfo;CREATE FUNCTION queryChildrenCaseInfo(cId INT)RETURNS ...

  10. bug,实现类未找到service