Главная страница
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.017 c
3-3271
Ренат
2002-08-12 14:25
2002.09.02
ODBC driver


3-3247
Andrey_k
2002-08-09 12:50
2002.09.02
HASP Emulator


1-3409
peter_login
2002-08-22 13:26
2002.09.02
Генерация скрипта VB


3-3258
Xelar
2002-08-12 13:55
2002.09.02
Текущая строка в DBGrid


3-3243
Oleon
2002-08-08 15:48
2002.09.02
Здарасьте. Проблема вдруг возникла с шрифтом.