在三层结构的程序里,服务器用ado控件,客户端用clientdataset连接
在dbgrid里对某条记录做修改之后,调用clientdataset->applyupdates(-1)
但是更新不成功
(服务器端的adoquery的sql语句初始为空,由程序运行中客户端传到服务器上,实际上是调用服务器端的一个自定义函数,这个函数执行客户端传来的sql语句)请教,毛病出在哪里,谢谢
是不是key键的问题,如果是的话,如何动态设置

解决方案 »

  1.   

    不是主键的问题,有主键的
    好象是得指定每个字段的providerflag,因为当我在服务器端写死sql语句并且指定好每个字段的providerflag属性之后,客户端一切操作正常
    但是问题在于,我的adoquery中的sql是在程序中变化的这样的话(这样就不能在ide里预设了,因为他不属于某个表),在客户端传来sql执行后,应该动态指定,请问如何指定,谢谢
      

  2.   

    错误提示:this record changed by other user
    但只有我自己在操作
    而且,如果服务器的adoquery中预先写好sql并设置好各个字段的providerflag的话,客户端更新是没问题的,因此,我觉得问题就出在当adoquery打开数据集之后,要定义相关字段的key键,但是如何在客户端当服务器的adoquery打开数据集之后,动态去定义他的各个字段的providerflag值?