Я использую поле BLOB-объекта в kbmMemTable
для хранения пользовательского компонента, который я разработал из TComponent
, и использую методы потока чтения и записи TReader
для чтения и записи компонента в поле BLOB-объектов. Данные в kbmMemTable
в конечном итоге сохраняются в структурированном файле хранения, созданном GpStructuredStorage
.
Это работало безупречно, пока я не переместил свой компонент (вместе с kbmMemtable
) в новое приложение и не попытался заставить новое приложение прочитать поле blob. Сначала я получал ошибку именования компонентов (имя компонента уже существует), но позже я начал получать нарушение прав доступа, когда TReader
пытается прочитать свойство TPersistent
моего компонента.
Насколько я знаю, я ничего не изменил в отношении способа извлечения данных kbmMemTable
из файла gpStructuredStorage
и способа чтения компонента обратно из поля большого двоичного объекта с помощью TReader
. Я не внес никаких изменений в компонент и, похоже, у меня нет проблем с другими компонентами, которые я храню в других полях BLOB-объектов в той же таблице (по крайней мере, я не получаю никаких ошибок, когда они читаются назад).
Я недоволен, в чем может быть проблема. Любая помощь / предложение будет принята с благодарностью. Я использую Delphi 2007.