TBlobField(<field>)。SaveToStream使用delphi 2010剪切最后一个NULL char

时间:2017-02-15 15:13:07

标签: blob delphi-2010

如果blob包含以NULL char结尾的rtf,delphi 2010会在我执行SaveToStream或SaveToFile时删除此字符

是否有可能改变这种行为?

这对我来说是一个问题,因为我计算了那些字段的哈希值。 使用Delphi 2010,我遇到了这个问题,但Delphi 2007却没有!所以哈希结果改变....

1 个答案:

答案 0 :(得分:0)

好的,我发现错误时出现了:

  1. Delphi 2010
  2. Firebird DBMS
  3. TIBDatabase对象具有charset属性(in 我的情况例如 lc_ctype = ISO8859_1
  4. 如果我删除字符集,则保存方法正常工作!

    其他信息:
    - 我使用Firebird数据库
    - blob字段是blob子类型文本
    - 值是rtf,他的终结符是空字符

    注意: 删除charset时,blob字段中的文本无法正确读取,我找到的唯一解决方法是直接在查询中将blob转换为varchar