ClientDataSet作为客户端数据集通过SocketConnection连接到应用服务器,通过应用服务器的DataSetProvider来获取数据,取得数据以后为了减少应用服务器的连接数量故意将SocketConnection和应用服务器的连接断开,ClientDataSet中的数据更改了以后想要提交回数据库,此时重新用SocketConnection和应用服务器保持连接,然后用ClientDataSet.ApplyUpdates(-1)提交数据,此时会出现无法提交的错误,错误提示好象是“无法定位Sql”(记不太清楚了)。是什么原因,如何解决,请各位高手赐教。

解决方案 »

  1.   

    关键是datasetprovider的数据集不能被改变,比如你在客户端传了个select 语句什么的,改变了datasetprovider的数据集.量的不去强制的用CommandText或是SQL给其值,并再次更新,因为它是动一牵多的。
      

  2.   

    如果在RemoteDataModule上使用了多个DataSetProvider,则一定要再增加一个Session控件(在BDE面板上),并且要设置其AutoSessionName属性为True。这是俺多次痛苦失败后试验出来的。