Конференция "Базы" » Еще одна проблема в D2010 - AV при доступе к Blob полям [IB 2.1.1]
 
  • Дмитрий Белькевич (12.11.09 13:33) [0]
    Кусок из модуля 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;.
  • имя (15.11.09 02:01) [1]
    Удалено модератором
 
Конференция "Базы" » Еще одна проблема в D2010 - AV при доступе к Blob полям [IB 2.1.1]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]