前些天小弟问过此问题,可能是发错了地方大家没看到,今天特再来求教,请大家务必帮帮忙。
问题是这样的:
    请问:在三层数据库中的客户端怎么才能实现数据的远程更新?
我用的是BDE连的SQL,客户端用的DCOM,我先是在客户端试了一些象DBNVG……等一些控件现现增、删、改,但APPLYDATES(-1)后数据库服务器上的数据并未修改,并且不能刷新。后自己增加了几个按纽想实现上述功能,在中间层的TSETPRO的BEFORUPDATERECORD事件里写了一些代码,目的是判断客户作的操作是增、删、改的哪一种,然后再把相应的参数传给TQUERY控件到数据库服务器里进行相应操作,但仍然不成功,基本上和第一种方法出现的错误一样(修改实际上没成功,还不能有刷新语句的存在,否则就报错)。
我也是最近才接触多层数据库的开发,原以为就和C/S差不多,谁知道连上以后再进行最起码的操作就实现不了了,自己凭感觉试来试去也没有结果,很衰呀。
特在此请高手给指点一下,小弟将不胜感激,最好说得详细一点儿,谢谢!·能帮我如此大忙,我一定给100分呀,我是刚加入的不知道能不能给得起100分,反正只要能帮我,我就有多少给多少。

解决方案 »

  1.   

    可能是你填写的数据违反了数据库规则,导致更新失败,捕捉一下数据库返回的错误三层中的数据库返回的错误不会自动显示异常信息,可以在ClientDataSet的OnReconcileError事件中处理
      

  2.   

    clientdataset 的原理是从服务端获取数据然后在本地内存中建立一个副本,
    客户端的操作全部都是通过副本进行的,即使你改了数据,也只是在副本中,
    要想在数据库中生效,就要先把clientdataset数据传给服务端,让服务端再
    提交给数据库,也就是要在服务端加相应的代码。这样,后台数据库中的数据
    才会更新为客户端该过的数据。
      

  3.   

    将sql语句写成:insert into xx 或 update xx
    之类来进行更新
    就ok
      

  4.   

    不要用敏感控件,自己写代码实现,参数都用olevariant,到服务器再处理。