Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Кто смогёт или А и В сидели на трубе.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-3597
VictorT
2002-05-27 13:31
2002.09.02
Раз пошла такая пьянка, то может и львовянам стрелкануться?


4-3670
mxsbnet
2002-07-02 10:19
2002.09.02
Мигание окошка в панели задач


14-3568
lak_b
2002-08-06 00:41
2002.09.02
Duke Nukem


1-3485
Ettore
2002-08-21 11:29
2002.09.02
реестр Windows: считывание Value Name (Default)


3-3318
Nazareth
2002-08-12 12:09
2002.09.02
Проблема с русскими полями в IB6