Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
3-3308
koks
2002-08-08 17:09
2002.09.02
подскажите ламеру в IB6 :))


14-3595
vajo
2002-08-07 11:25
2002.09.02
NTFS


1-3462
JustAMan
2002-08-20 21:34
2002.09.02
Как изменить высоту cell a


1-3343
alex_x
2002-08-21 18:14
2002.09.02
Дата Project Build


1-3338
Elena_K
2002-08-20 11:28
2002.09.02
---|Ветка была без названия|---




   Наверх