![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Помогите, кто чем может