Вся хитрость заключается в использовании 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;
|
|