同上

解决方案 »

  1.   

    我的可以啊,你用的是什么?我使用sql语句实现更新的
      

  2.   

    是用 ClientDataSet1.ApplyUpdates(-1);更新的
      

  3.   

    那东西是有些问题
    用sql server语句绝对没有问题
      

  4.   

    可以用用sql server语句吗?好象没得选择的吧!具体怎么样做呢?可以说一下吗?
      

  5.   

    我用CLIENTDATASET。EDIT同样不能进行修改
      

  6.   

    还是用sql语句修改方便
    不会出问题的
      

  7.   

    不知道问题所在,但是绝对可以使用sql语句,方法是使用clientdataset的commadtext的属性,要注意的是需要把datasetpovider的option中allowcommandtext=true.但是不推荐这样的做法,可以在server端写好更新的方法,然后把数据传给这个方法来更新。
      

  8.   

    补充说明:以上所说的是主从表才有这样情况,若是单个表则不存在修改不能保存
    的情况,主从表在应用服务器是用两个ADOQuery1连接的。
      

  9.   

    我遇到过类似的问题,我遇到的是我的数据对象(跟新数据),是通过其他功能或协调对象
    引用来处理数据跟新,问题是出在中间层的功能对象那里了。
    这类问题不会是客户段的问题,你把数据对象的providerdatasetResolvetoData设成True
    让Query自己写SQL出来数据看看效果,
    老大单部调试服务器,一般都可以查到问题的。
      

  10.   

    用sql语句得话,你要在中间层定义一个接口,然后在客户端调用这个接口,执行sql语句或者指定这个接口执行你得存储过程就可以了:)】调用接口:SocketConnection.appserver.接口名(参数)就ok了:)
      

  11.   

    有两种可能会不能保存
    1. UpdateMode 的经典问题,试试 delete 是否可以,如果也不行你就是这种情况
       有三种 UpdateMode, 快找本书看看, 默认是 upWhereAll, 表示记录的所有老值用于定位原始记录,upWhereChanged 表示只有改动过的记录的老值才被用于定位原始记录(你可能要设成这个),upWhereKeyOnly 表示只有指定的 key 用于定位原始记录2. 在这个表中使用了触发器
       我不知道这算不算是MSSQL 的一个bug, 但的确如此,当触发器更新记录后,它会影响 effect records 全局变量,而MIDAS 是这样认为的: 0 record changed by another user, > 1 effect more than one record (这可以设DataSetProvider 为允许更新多条解决), 所以触发器应小心使用,至少应让最后一条语句更新一条记录。不知道说得是否有点让你无法理解.
      

  12.   

    这种问题我刚开始时有碰到过,我用了一个笨办法:就是在ApplyUpdates之前,将记录集循环一次,修改一下每条记录的值(一个Field即可),然后才提交,肯定可以保存。
    这应该是Midas的问题,具体机制还没有时间去研究,可先将就用着。
      

  13.   

    我想新增的可以保存,而修改的不能保存,是不是你在修改后并没有真到的传送到远程数据库中呢?
    clientprovider1.edit;
    ...
    clientprovider1.ApplyUpdates(-1);
      

  14.   

    在服务器端写个方法。在这个方法中进行delete的操作。客户端调用该方法即可。