没有人用过这种结构访问Oracle吗?
请各路高手指导一下!

解决方案 »

  1.   

    if (ClientDataSet1.ChangeCount > 0) then 
        ClientDataSet1.ApplyUpdates(-1);
      

  2.   

    中间层用什么组件连接数据库?用DataBase连接时要注意Query的属性设置;用ADO时要注意选合适的驱动程序。
      

  3.   

    可能你的数据只是在本地上做了修改
    在真正的数据库中没有修改
    data Delta  的区别
    看看李维的系统篇
      

  4.   

    Each dataset must have its CachedUpdates property set to True
      

  5.   


    如果是3层的话,更改中间层的控件属性,例如基于BDE的,控件有Database,Query,Provider. 关键在Query上,如果要用ApplyUpdate,则
    Query的AutoRefresh,RequestLive 为 true,这样的后果是客户端不能用
    Insert等更改数据库的SQL,因此需要再做一个对客户端的连接,用来处理Insert等。我曾经遇到过这样的问题,但建议你不要直接修改DBGrid,最好用其它的数据
    控件填DBGrid的内容,然后用SQL提交到数据库。
      

  6.   

    请用过Delphi6的高手看一下,也可以做个简单的测试,用BDE的TQuery是可以的,但是SQLClientDataSet不可以!
      

  7.   

    我使用SQLClientDataSet+CLientDataSet+IB测试是争取的,在DB2上也是正确的!
      

  8.   

    if ClientDataSet1.ApplyupDates(0) > 0 then
      ShowMessage('Error');
    估计是你的数据在提交时已经出错误了.