Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Запись потока в BLOB-поле

01.01.2007

Вся хитрость заключается в использовании StrPcopy (помещения вашей строки в PChar) и записи буфера в поток. Вы не сможете передать это в PChar непосредственно, поскольку ему нужен буфер, поэтому для получения необходимого размера буфера используйте <BufferName>[0] и StrLen().

Вот пример использования TMemoryStream и записи его в Blob-поле:

var
  cString
: string;
  oMemory
: TMemoryStream;
 
Buffer: PChar;
begin
  cString
:= 'Ну, допустим, хочу эту строку!';
 
 
{ СОздаем новый поток памяти }
  oMemory
:= TMemoryStream.Create;
 
 
{!! Копируем строку в PChar }
 
StrPCopy(Buffer, cString);
 
 
{ Пишем =буфер= и его размер в поток }
  oMemory
.Write(Buffer[0], StrLen(Buffer));
 
 
{Записываем это в поле}
 
< Blob / Memo / GraphicFieldName > .LoadFromStream(oMemory);
 
 
{ Необходимо освободить ресурсы}
  oMemory
.Free;
end;

Взято с https://delphiworld.narod.ru