【发布时间】:2011-06-12 16:31:18
【问题描述】:
我使用kbmMemTable 中的blob 字段来存储我从TComponent 开发的自定义组件,并使用TReader 的读写组件流方法来读写组件到 blob 字段。 kbmMemTable 中的数据最终存储在GpStructuredStorage 创建的结构化存储文件中。
这一直完美无缺,直到我将我的组件(连同kbmMemtable)移动到一个新应用程序并尝试让新应用程序读取 blob 字段。起初我收到组件命名错误(组件名称已存在),但后来当TReader 尝试读取我的组件的TPersistent 属性时,我开始收到访问冲突。
据我所知,关于从 gpStructuredStorage 文件中检索 kbmMemTable 数据的方式以及使用 TReader 从 blob 字段中读取回组件的方式,我没有进行任何更改。我没有对组件进行任何更改,而且我存储在同一个表的其他 blob 字段中的其他组件似乎没有任何问题(至少在读取它们时我没有收到任何错误背部)。
我对可能是什么问题感到恼火。任何帮助/建议将不胜感激。我正在使用 Delphi 2007。
【问题讨论】:
-
如何格式化您的问题,使其不是文字墙?我不倾向于尝试以这种形式阅读它。
-
尝试在两个应用程序中重现您的问题,方法是将您的 TPersistent 写入 .dfm 文件,然后重新读取该 .dfm 文件。然后将您的问题简化为可以重现的最简单的 TPersistent。然后使用示例代码重新提出您的问题。
标签: delphi streaming delphi-2007 vcl tpersistent