Thema: Delphi FlashFiler für D2007

Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5

Re: FlashFiler für D2007

  Alt 9. Jun 2009, 11:33
Ich habe es nicht ganz so gemacht wie in dem Link beschrieben. Den Code zu dublizieren hatte ich keine Lust. Somit habe ich die entsprechenden Units direkt geändert.
Hier die Änderungen in ffdb.pas:
Delphi-Quellcode:
  {$IFNDEF DCC6OrLater}
  FldTypeMap: TFieldMap = (
    fldUNKNOWN, fldZSTRING, fldINT16, fldINT32, fldUINT16, fldBOOL,
    fldFLOAT, fldFLOAT, fldBCD, fldDATE, fldTIME, fldTIMESTAMP, fldBYTES,
    fldVARBYTES, fldINT32, fldBLOB, fldBLOB, fldBLOB, fldBLOB, fldBLOB,
    fldBLOB, fldBLOB, fldCURSOR, fldZSTRING, fldZSTRING, fldINT64, fldADT,
    fldArray, fldREF, fldTABLE, fldBLOB, fldBLOB, fldUNKNOWN, fldUNKNOWN,
    fldUNKNOWN, fldZSTRING);

  DataTypeMap: array[0..MAXLOGFLDTYPES - 1] of TFieldType = (
    ftUnknown, ftString, ftDate, ftBlob, ftBoolean, ftSmallint,
    ftInteger, ftFloat, ftBCD, ftBytes, ftTime, ftDateTime,
    ftWord, ftInteger, ftUnknown, ftVarBytes, ftUnknown, ftUnknown,
    ftLargeInt, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet);

  {$ELSE}
  {$IFDEF VER180}
  FldTypeMap: TFieldMap = (
    fldUNKNOWN, fldZSTRING, fldINT16, fldINT32, fldUINT16, fldBOOL, // 0..5
    fldFLOAT, fldFLOAT, fldBCD, fldDATE, fldTIME, fldTIMESTAMP, fldBYTES, // 6..12
    fldVARBYTES, fldINT32, fldBLOB, fldBLOB, fldBLOB, fldBLOB, fldBLOB, //13..19
    fldBLOB, fldBLOB, fldCURSOR, fldZSTRING, fldZSTRING, fldINT64, fldADT, // 20..26
    fldArray, fldREF, fldTABLE, fldBLOB, fldBLOB, fldUNKNOWN, fldUNKNOWN, // 27..33
    fldUNKNOWN, fldZSTRING, fldDATETIME, fldBCD, // 34..37
    fldZSTRING, fldBLOB, fldDATETIME, fldINT32); // 38..41

  DataTypeMap: array[0..MAXLOGFLDTYPES - 1] of TFieldType = (
    ftUnknown, ftString, ftDate, ftBlob, ftBoolean, ftSmallint,
    ftInteger, ftFloat, ftBCD, ftBytes, ftTime, ftDateTime,
    ftWord, ftInteger, ftUnknown, ftVarBytes, ftUnknown, ftUnknown,
    ftLargeInt, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet,
    ftTimeStamp, ftFMTBCD);

  {$ELSE}

  FldTypeMap: TFieldMap = (
    fldUNKNOWN, fldZSTRING, fldINT16, fldINT32, fldUINT16, fldBOOL,
    fldFLOAT, fldFLOAT, fldBCD, fldDATE, fldTIME, fldTIMESTAMP, fldBYTES,
    fldVARBYTES, fldINT32, fldBLOB, fldBLOB, fldBLOB, fldBLOB, fldBLOB,
    fldBLOB, fldBLOB, fldCURSOR, fldZSTRING, fldZSTRING, fldINT64, fldADT,
    fldArray, fldREF, fldTABLE, fldBLOB, fldBLOB, fldUNKNOWN, fldUNKNOWN,
    fldUNKNOWN, fldZSTRING, fldTIMESTAMP, fldBCD);

  DataTypeMap: array[0..MAXLOGFLDTYPES - 1] of TFieldType = (
    ftUnknown, ftString, ftDate, ftBlob, ftBoolean, ftSmallint,
    ftInteger, ftFloat, ftBCD, ftBytes, ftTime, ftDateTime,
    ftWord, ftInteger, ftUnknown, ftVarBytes, ftUnknown, ftUnknown,
    ftLargeInt, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet,
    ftTimeStamp, ftFMTBCD);
  {$ENDIF}
  {$ENDIF}

 BlobTypeMap: array[fldstMEMO..fldstBFILE] of TFieldType = (
    ftMemo, ftBlob, ftFmtMemo, ftParadoxOle, ftGraphic, ftDBaseOle,
    ftTypedBinary, ftBlob, ftBlob, ftBlob, ftBlob, ftOraClob, ftOraBlob,
    ftBlob, ftBlob);
{$ENDIF}
Hier die Ergänzungen in ffsrbde.pas:
Delphi-Quellcode:
const
{ Field Types (Logical) }

  fldUNKNOWN = 0;
  fldZSTRING = 1; { Null terminated string }
  fldDATE = 2; { Date     (32 bit) }
  fldBLOB = 3; { Blob }
  fldBOOL = 4; { Boolean  (16 bit) }
  fldINT16 = 5; { 16 bit signed number }
  fldINT32 = 6; { 32 bit signed number }
  fldFLOAT = 7; { 64 bit floating point }
  fldBCD = 8; { BCD }
  fldBYTES = 9; { Fixed number of bytes }
  fldTIME = 10; { Time        (32 bit) }
  fldTIMESTAMP = 11; { Time-stamp  (64 bit) }
  fldUINT16 = 12; { Unsigned 16 bit integer }
  fldUINT32 = 13; { Unsigned 32 bit integer }
  fldFLOATIEEE = 14; { 80-bit IEEE float }
  fldVARBYTES = 15; { Length prefixed var bytes }
  fldLOCKINFO = 16; { Look for LOCKINFO typedef }
  fldCURSOR = 17; { For Oracle Cursor type }
  fldINT64 = 18; { 64 bit signed number }
  fldUINT64 = 19; { Unsigned 64 bit integer }
  fldADT = 20; { Abstract datatype (structure) }
  fldARRAY = 21; { Array field type }
  fldREF = 22; { Reference to ADT }
  fldTABLE = 23; { Nested table (reference) }
  {$IFDEF VER180}
  fldDATETIME = 24;
  fldFMTBCD = 25;
  fldWIDESTRING = 26;
  {$ENDIF}
und hier die Ergänzungen in ffdefine.inc gleich hinter dem Block für VER150
Zitat:
{$IFDEF VER180}
{$DEFINE DCC4OrLater}
{$DEFINE DCC5OrLater}
{$DEFINE DCC6OrLater}
{$DEFINE DCC7OrLater}
{$DEFINE ProvidesDatasource}
{$IFNDEF BCB}
{$DEFINE Delphi7}
{$DEFINE IsDelphi}
{$DEFINE HasStrictCardinal}
{$DEFINE ResizePersistFields}
{$DEFINE ExprParserType3}
{$ENDIF}
{$ENDIF}
Aus mir unerfindlichen Gründen war in Requires des Designtime-Package das Package ff213_r70 angegeben. Das habe ich in meinem gesamten TP-Ordner nicht gefunden. Dafür habe ich das von mir aktualisierte Package ff2_r70 eingetragen.

Compoiling und Installation beider Packages lief dann problemlos. Ich hoffe nur, der laufende Betrieb leifert das gleiche Ergebnis. Ich werds testen.

Gruß oki
42
  Mit Zitat antworten Zitat