你定义的这个表是不是没有key字段?如没有就加一个自动增加类型的字段。

解决方案 »

  1.   

    to guig(胖胖):有KEY 字段呀,而且还是自动增加类型的字段,但是在ApplyUpdates()时就会出现上面的错误。 :(
      

  2.   

    你用的数据控件是BDE的吗?如是就改为用ADO的巴。
    因为在有自动增加类型的字段、BLOB字段的表用BDE的控件这样操作就会出错,用ADO的就没问题。
    好像是BDE的BUG巴。
      

  3.   

    主要是这个错误“Unable to find record ,No key specified ”,李维的《分布式多层应用系统篇》中说的,只要将DATABASE的handleshara设为TRUE 后就不会出现的这样的错误呀,而且今天上午我试了一下,将一个session控件放上后(服务器端),更新时不会出错了          
      

  4.   

    (接上),但是不会保存更新的结果,值仍然是原来的,还有,我有一个和这个表一样的表,也有
    BLOB字段和自动增长字段,更新的代码也是一样的,却不会出错。
      

  5.   

    是 Key 的字段请在 ProviderFlag 中加入 pfKey。如果你不需要 WhereAll 的支持,请改掉 TDataSetProvider 的 UpdateMode 为 upWhereKeyOnly。如果你需要 WhereAll,请把所有 Blob, Graphic 字段的ProviderFlag 中的 pfInWhere 关掉,这样的字段不能用于 Where语句。明白了吗?顺便说 HandleShared 不能用,这让所有的数据库存取串行化,也就是说 apartment 模式失效了。
      

  6.   

    Database 的 HandleShared 不为true 时,又有两个客户时,会出现 database name already exists,而不是你说这个错。
      

  7.   

    to guig(胖胖): 对于 sybase 和 oracle 的数据库, 在 delphi6 以前版本只有 BDE 是最好的选择
      

  8.   

    to comanche(太可怕):  顺便说 HandleShared 不能用,这让所有的数据库存取串行化,也就是说 apartment 模式失效了。为什么?能不能 说明白一点。