...я все же лелею надежду, что когда-нибудь увижу TMemoField.DataSize,
имеющим значение, отличное от нуля. Может быть значение DataSize является
размером части Memo, которая сохранилась в .db-файле? Вместо этого я теперь
пользуюсь объектом TBlobStream, который вполне хорошо справляется с этой
работой. Все это у меня происходит примерно так:
var
pBuffer: PChar;
Blob: TBlobStream;
begin{FDataField - это TMemoField}
Blob := TBlobStream.Create(FDataField, bmRead);
tryif Blob.Size > 0 thentry
GetMem(pBuffer, Blob.Size);
Blob.Read(pBuffer^, Blob.Size);
{ что-то тут делаем }
FreeMem(pBuffer, Blob.Size);
except
ShowMessage('Нехватка памяти');
end;
finally
Blob.Free
end;
end;
В статье описывается способ отображения Memo-поля в DBGrid, поскольку TMemoField.DataSize не всегда имеет значение отличное от нуля, и вместо этого используется объект TBlobStream для чтения данных из файла .db.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS