现象:

'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. springboot + rabbitmq 整合示例

    几个概念说明:Broker:简单来说就是消息队列服务器实体.Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列.Queue:消息队列载体,每个消息都会被投入到一个或多个队列.Bindi ...

  2. bzoj5441: [Ceoi2018]Cloud computing

    跟着大佬做题.. 这题也是有够神仙了.观察一下性质,c很小而f是一个限制条件(然而我并不会心态爆炸) %了一发,就是把电脑和订单一起做背包,订单的c视为负而电脑的v为负,f由大到小排序做背包 #inc ...

  3. poj 1061(扩展欧几里得定理求不定方程)

    两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特 ...

  4. Head First 设计模式 —— 策略设计模式

    创建一个能够根据所传递的参数对象的不同而具有不同行为(动态绑定的多态机制)的方法,被称为策略设计模式.

  5. 音频格式opus

    人耳能听到自然界的声音是20HZ-20KHZ,一般高保真音质采样率只有达到最高采样率的2倍以上即可,平时电话采样率8KHZ,CD音质的采样率44.1KHZ. IBM 的Watson的音频转文字接口支持 ...

  6. 利用tensorflow实现前向传播

    import tensorflow as tf w1 = tf.Variable(tf.random_normal((2, 3), stddev=1, seed=1))w2 = tf.Variable ...

  7. E20170911-hm

    specification n.     规格; 说明书; 详述;

  8. centos vi和vim用法

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  9. layui框架 各种小结

    首先项目前端采用的是bootstrap和layui弹窗,验证,表格用的是bootstrapTable layui官方地址:http://www.layui.com/ 文档:http://www.lay ...

  10. Spring的AOP机制---- AOP环绕通知---- AOP环绕通知

    323232三个人个地方司法发送哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈