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