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

Previous  Top  Next

    
 

 

 

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

 

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

Code:

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;

©Drkb::02471

 

 

       

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