某个表中有3个字段(Access数据库)ID            int
Name          Text
Descript      备注在MIDAS的Sorcket方式下编辑数据,很容易出现如下错误现象。General SQL error.
[Microsoft][ODBC Microsoft Access Driver]字符串数据,右截断 (null)我已经设置update Mode= upWhereKeyOnly, 关键字段为 ID (ProviderFlag={pfInWhere, pfInUpdate, pfInKey})请问这种错误出现的原因,如何解决?

解决方案 »

  1.   

    估计原因是:Name字段的值的长度超过了Name字段的最大存储量.
      

  2.   

    Name的字符长度为50字节,而写入的内容仅不到30字节(英文字母)
    问题就出在Memo类型上。Memo类型的字段对应的 TField 是 TMemoField我将Memo类型改为 LONGBINARY类型 (即OLE对象),它对应的字段类是 TBlobField,就不再出错。每次写Descript内容时,仅仅随便填写了一些英文字母,总字节应该不会超过2k, 应用时会出现上述 “右截断”错误。
      

  3.   

    你是不是编辑了中文?MIDAS在UNICODE上处理中文有个BUG,会截断中文字符串的。不知道和你的有没关系。
      

  4.   

    请注意,编辑的数据中一直是使用英文文本内容测试的,而且内容都很短。有时将长内容修改为短内容,在应用的时候会触发OnReconcileError, 在 ReconcileErrorForm 窗口的 ErrorMsg提示"...字符串右截断"错误信息。