Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизКто смогёт или А и В сидели на трубе. Найти похожие ветки
← →
Ivanko (2002-08-09 19:40) [0]В таблице 3 поля А, В и С типа Formatted Meмo. В А и Б содержится куски текста в формате RTF (отформатированного), в ячейку поля С надо записать их вместе, допустим сначала идет текст из А, а затем из B.
← →
Desdechado (2002-08-10 18:42) [1]а вопрос в чем?
если умеешь писать в мемо А (или Б), точно так же и в С.
создаешь TMemoryStream, копируешь в него содержимое блоба А (TBlobStream), добавляешь в конец содержимое блоба Б, копируешь в блоб С содержимое TMemoryStream
← →
Ivanko (2002-08-11 20:09) [2]Desdechado, я по образованию мостостроитель, так что не обессудь и направь в русло (вставляется только 1 часть из 2-х)
var str1: Tmemorystream;
str2: TBlobstream;
Buffer: Pchar;
MemSize: Integer;
begin
str1:=Tmemorystream.create;
str2:=TBlobStream.Create(query1B as TBlobField, bmRead);
(query1A as TBlobField).savetostream(str1);
MemSize := Str2.Size;
Inc(MemSize);
Buffer := AllocMem(MemSize);
Str2.Read(Buffer^, MemSize);
Str1.Seek(0, 2);
Str1.Write(buffer, memsize);
Query1.Edit;
(query1N3 as TBlobField).Loadfromstream(str1);
Query1.post;
FreeMem(Buffer, MemSize);
Str1.Free;
Str2.Free;
end;
← →
Desdechado (2002-08-12 13:09) [3]навскидку, не проверял, но общее направление такое:
var
oBlobAB, oBlobC: TStream;
Buff: PChar;
nSize: Integer;
begin
qryC.Edit;
oBlobC := CreateBlobStream( qryC.FieldByName( "C" ) As TBlobField, bmWrite );
oBlobAB := CreateBlobStream( qryAB.FieldByName( "A" ) As TBlobField, bmRead );
oBlobC.CopyFrom( oBlobAB, 0 );
oBlobAB.Free;
oBlobAB := CreateBlobStream( qryAB.FieldByName( "B" ) As TBlobField, bmRead );
nSize := oBlobAB.Size;
GetMem( Buff, nSize );
oBlobAB.Read( Buff^, nSize );
oBlobAB.Free;
oBlobC.Seek( 0, soFromEnd );
oBlobC.Write( Buff^, nSize );
FreeMem( Buff, nSize );
oBlobC.Free;
qryC.Post;
end;
не забудь обработать возможные ошибки :)
а вообще-то не ясно, зачем одно и тоже хранить в БД дважды, особенно блобы
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c