diff --git a/packages/fcl-db/src/base/bufdataset.pas b/packages/fcl-db/src/base/bufdataset.pas index 44353d46f2..83b985e6ab 100644 --- a/packages/fcl-db/src/base/bufdataset.pas +++ b/packages/fcl-db/src/base/bufdataset.pas @@ -1674,6 +1674,7 @@ function TCustomBufDataset.GetFieldSize(FieldDef : TFieldDef) : longint; begin case FieldDef.DataType of + ftUnknown : result := 0; ftString, ftGuid, ftFixedChar: result := FieldDef.Size + 1; @@ -1692,6 +1693,9 @@ begin ftTime, ftDate, ftDateTime : result := sizeof(TDateTime); + ftBytes : result := FieldDef.Size; + ftVarBytes : result := FieldDef.Size + 2; + ftVariant : result := sizeof(variant); ftBlob, ftMemo, ftGraphic, @@ -1702,7 +1706,8 @@ begin ftOraBlob, ftOraClob, ftWideMemo : result := sizeof(TBufBlobField) - else Result := 10 + else + DatabaseErrorFmt(SUnsupportedFieldType,[Fieldtypenames[FieldDef.DataType]]); end; {$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} result:=Align(result,4);