Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OLE и Blob - поля Interbase [D7, IB6.x]


kolos_rus ©   (2004-11-04 12:28:00) 

Подскажите действительно работающий пример записи и чтения OLE объектов в Interbase. Пробовал все, что нашел в интернете - не помогает. Запись делаю с помощью кода:
var
blst : TStream;
begin
ibtable1.Edit;
Blst := IBTable1.CreateBlobStream(dm1.IBTable1.FieldByName('pole'),bmreadwrite);
olecontainer1.SaveToStream(blst as Tstream);
Blst.Free;
ibtable1.Post;
end;
А прочитать никак не удается. В различных примерах разные ошибки.


kolos_rus   (2004-11-06 09:26:00) [1]

Создал новое приложение, в которое добавил только две кнопки с чтением и записью в blob и olecontainer бросил на форму. Все равно ошибка "Access violation at address 004876EF"


Johnmen   (2004-11-04 18:08:00) [2]

Ну я бы голову на отсечение не дал :)


kolos_rus   (2004-11-04 18:00:00) [3]

А этот кусок кода 100% рабочий?


Johnmen   (2004-11-04 17:55:00) [4]

К сожалению нет.

>Может у меня в другом месте ошибка

А вот это вполне возможно.


kolos_rus   (2004-11-04 17:44:00) [5]

Johnmen можно выслать архив приложения по мылу с данными функциями? Может у меня в другом месте ошибка


kolos_rus   (2004-11-04 16:47:00) [6]

При чтении из blob поля на строке
OleContainer1.LoadFromStream(S)
возникает ошибка: "Access violation at address 004876EF"


Johnmen   (2004-11-04 15:14:00) [7]

Чтение из блоб-поля в OleContainer

var S: TStream;
begin
if not FieldByName('pole').IsNull then
 begin
   S:=IBTable1.CreateBlobStream(FieldByName('pole'), bmRead);
   try
    OleContainer1.LoadFromStream(S)
   finally
    S.Free
   end;
 end;
end;


Запись в блоб-полe из OleContainer (вызываeтся в BeforePost)

var S: TStream;
begin
S:=IBTable1.CreateBlobStream(FieldByName('pole'),
        bmReadWrite);
try
 OleContainer1.SaveToStream(S)
finally
 S.Free
end;
end;


kolos_rus   (2004-11-04 14:53:00) [8]

Помогите, кто чем может


Наверх

Титульная страница Поиск, карта сайта Написать письмо