我在Delphi6环境下,完完全全按照李维书上的例子做了,可是当我在DBGrid更新数据,按提交后程序已有所反应,但重新连接后数据并没有改变.
我改为加条件调用服务器COM+对象的另一个方法更新一条数据,却是可以的.

解决方案 »

  1.   

    服务端的数据集控件sql属性不能动态的更改,比如你客户端clientdatset.commandtext改变了服务端的adoquery的sql语句。你这样是不能更新的。为什么?看看datasetprovider的源代码就知道了
      

  2.   

    to  theone_jxm()我提交提是修改后的数据集(ClientDataSet1.Delta),而不是Clientdataset1.commandtext.
      

  3.   

    中间层是不会返回更新数据的错误信息的,你把应用程序服务器的工程文件在数据库服务器上用Delphi打开,运行,客户端再连接、修改数据、提交,这个时候,应用程序服务器如果提交数据出错就会报错,这样你应该就可以知道中间层为什么提交不到数据库了
      

  4.   

    数据更新要用DBGrid的DataSet数据集合的ApplyUpdates(-1)方法提交才有效。用DataSetProvider的方法可以直接更新到数据库