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

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

FIBPlus: сохраняю Stream в Blob-поле, получаю AV


ari_9 ©   (2007-11-07 19:56:00) 

хочу хранить настройки cxGrid'a, такие как порядок столбцов, видимость, ширину, сортировку и т.д. в БД. благо, уже есть соответствующий метод для cxGridTableView/cxGridDBTableView - StoreToStream. записать в БД пытаюсь методом LoadFromStream компонента FIBDataSet

код выглядит примерно так


   try
     my_cxGridDBTableView.StoreToStream(AStream);
     with my_pFIBDataSet do
     begin;
       Edit;
       TBlobField(FieldByName('TABLE_VIEW_SETTINGS')).LoadFromStream(AStream);
       Post;
     end;
   finally
     AStream.Free;
   end;


на выделенной строке получаю AV - EAccessViolationAccess violation at address 006E06A7 in module 'my_project.exe'. Read of address 00000000

код основан на примере использования Blob'ов в FIBPlus - http://devrace.com/ru/fibplus/articles/4867.php

если сохранять поток, полученный от вью, в файл, он корректно пишется. где копать ?

p.s. объясните пожалуйста. есть ли принципиальная разница между такими методами работы с Blob'ами :

var
 AStream, SStream: TStream;
....
       SStream := CreateBlobStream(FieldByName('TABLE_VIEW_SETTINGS'), bmReadWrite);
       SStream.CopyFrom(AStream, AStream.Size);


и

 AStream: TStream;
....
TBlobField(FieldByName('TABLE_VIEW_SETTINGS')).LoadFromStream(AStream)


Сергей М.   (2007-11-08 10:44:00) [1]


> есть ли принципиальная разница


Есть.

Цитата из справки к методу TBlobStream.LoadFromStream:

Note:
The Stream parameter is typically not a BLOB stream. BLOB streams (returned by the dataset’s CreateBlobStream method) provide a completely separate mechanism for streaming data into a BLOB field.


KilkennyCat   (2007-11-08 01:12:00) [2]

Сто лет не работал со стримами... там случайно, не надо позишион в нуль откатить перед вызовом лоад после сторе?


Наверх

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