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

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

Еще одна проблема в D2010 - AV при доступе к Blob полям [IB 2.1.1]


Дмитрий Белькевич ©   (2009-11-12 13:33:00) 

Кусок из модуля IBCustomDataSet.pas:


 if FField is TWideMemoField then
 begin
   if FBlobStream.Database.CharacterSetCodePage = 0 then
     result := FBlobStream.Write(Buffer, Count)
   else
     Result := DecodeLength(FBlobStream.Database.CharacterSetCodePage);
 end
 else
   result := FBlobStream.Write(Buffer, Count);


В некоторых случаях (когда читается блобовское поле AsString, другие условия не ясны) почему-то FBlobStream.Database = nil.

Таких кусков кода три по модулю.

Проблема, предположительно, здесь:

function TIBCustomDataSet.CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream;


 if Buff = nil then
 begin
   fs := TIBBlobStream.Create;
   fs.Mode := bmReadWrite;
   FBlobStreamList.Add(Pointer(fs));
   result := TIBDSBlobStream.Create(Field, fs, Mode);
   exit;
 end;


Предположительно в этом куске не хватает fs.Database := Database;.


  (2009-11-15 02:01:00) [1]

Удалено модератором


Наверх

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