dBASE и Paradox таблицы имеют в своем арсенале BLOB-поля, позволяющие хранить
бинарные данные, в том числе bitmap-формат, отображаемый с помощью компонента
TDBImage. В Database Desktop данный тип полей указан как Binary и Graphic (для
dBASE и Paradox таблиц, соответственно). Тем не менее, процесс сохранения
изображений в InterBase BLOB-полях и их использование в компонентах TDBImage не
такой уж простой.
Извлечение изображения из BLOB-поля таблицы dBASE или Paradox -- без первой
записи изображения в файл -- простейший процесс использования метода Assign для
сохранения содержимого BLOB-поля в объекте, имеющим тип TBitmap. Отдельный
объект TBitmap или свойство Bitmap объекта Picture, в свою очередь являющегося
свойством компонента TIMage, могут служить примером совместимой цели для данной
операции.
Вся хитрость заключается в использовании StrPcopy (помещения вашей строки в
PChar) и записи буфера в поток. Вы не сможете передать это в PChar
непосредственно, поскольку ему нужен буфер, поэтому для получения необходимого
размера буфера используйте <BufferName>[0] и StrLen().
Мне нужно записать серию чисел в файл Paradox в blob-поле. Числа получаются
из значений компонент, размещенных на форме. Затем мне нужно будет считывать
числа из blob-поля и устанавливать согласно им значения компонент. Как мне
сделать это?
InterBase BLOB-поля отличаются от полей другого типа. Реально BLOB-поле имеет
несколько подтипов (sub-type). Знание подтипа BLOB-поля существенно при создании
приложения для работы с базами данных, которые включают в себя InterBase
BLOB-поля. BLOB-поля могут быть трех подтипов: подтип 0, подтип 1 (два
встроенных подтипа), и пользовательский подтип.