fpc 3.3.1比3.2.2,字段类型增加了7种字段类型(红字部分):
TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo, ftOraTimeStamp, ftOraInterval, ftLongWord, ftShortint, ftByte, ftExtended, ftSingle);
unidac的MemDS.pas对应也要增加7种字段类型:
const DataTypeMap: array [TFieldType] of word = ( // ftUnknown, ftString, ftSmallint, ftInteger, ftWord dtUnknown, dtString, dtInt16, dtInteger, dtUInt16, // ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, dtBoolean, dtFloat, dtCurrency, dtBCD, dtDate, dtTime, dtDateTime, // ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, dtBytes, dtVarBytes, dtInteger, dtBlob, dtMemo, dtBlob, dtMemo, // ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, 0, 0, 0, dtCursor, dtString, dtWideString, // ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, dtInt64, dtObject, dtArray, dtReference, dtTable, 0, 0, // ftVariant, ftInterface, ftIDispatch, ftGuid dtVariant, 0, 0, dtGuid // ftTimeStamp, ftFMTBcd {$IFNDEF FPC}, dtSQLTimeStamp{$ELSE}, 0{$ENDIF}, dtFmtBCD {$IFDEF FPC} // ftFixedWideChar, ftWideMemo , dtWideString, dtWideMemo {$if FPC_FULLVERSION>30202} ,dtUnknown ,dtUnknown ,dtUnknown ,dtUnknown ,dtUnknown ,dtUnknown ,dtUnknown {$endif} {$ENDIF} {$IFDEF VER10P} // ftFixedWideChar, ftWideMemo, ftOraTimeStamp, ftOraInterval , dtWideString, dtWideMemo, 0, 0 {$IFDEF VER12P}
如果用到Oracle,OraServicesUni.pas也做类似的修改。
修改后就能在fpc 3.3.1的lazarus安装使用。