客户端输入数据后再保存,马上发现DBGRID的记录都没有了,而且也没有保存到数据库,再次输入又能够保存,如何避免这种情况,在中间层需要写什么东西来捕获保存出错吗?

解决方案 »

  1.   

    另外数据库用的是SQl SERVER2000
      

  2.   

    ClientDataSet.ApplyUpdates(0);
    按照你的意思这句是关键的。
    你可以重新刷新一下数据表,就可以看到全部数据了
      

  3.   

    ClientDataSet.ApplyUpdates(0);
    这句就是将中间曾的数据更新回数据库中
      

  4.   

    我就是用的这句Applyupdates,但就是用它就会出现不能保存,刷新数据表没用,数据库根本就没有要保存的数据,但我发现用sql语句“Insert into……”就不会发生这种情况,是不是用这种方法要好些,他们的根本区别在哪里
      

  5.   

    不要用applyupdate(0),自己寫sql語句插入或更新會更好些
      

  6.   

    你设置中间层的接口控件comand属性设置为True,试试
      

  7.   

    yhy702,你是怎么用SQL来录入数据的呀,说下方法,要用那个控件呀
      

  8.   

    我发现我的程序:1.用的是ApplyUpdates(-1),这与ApplyUpdates(0)有区别吗,会不会是它造成保存时不稳定?
    2.基本都是在主从表里更新从表时不能保存数据
    另外,在事件onPostError中写代码可以捕获到保存时出错吗??
      

  9.   

    Set –1 to indicate that there is no limit to the number of errors
    The provider can’t detect when an update conflicts with another user’s changes to a memo field. The server will not detect and return these conflicts as errors.ApplyUpdates returns the number of errors it encountered
      

  10.   

    但在事件onPostError中写代码可以捕获到保存时出错吗??
      

  11.   

    是否数据库设置了主键导致保存失败
    如果在客户端使用insert语句就变成是两层结构了
      

  12.   

    偶做三层的时候从不用DB开头的控件,用LISTVIEW或STRINGGRID代替