Thema: Delphi FlashFiler für D2007

Einzelnen Beitrag anzeigen

oki

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

FlashFiler für D2007

  Alt 9. Jun 2009, 08:58
Datenbank: Turbo Power Flash Filer • Version: 2.13 • Zugriff über: FlashFiler-Komponenten
Hallo Leute,

ich habe ein schon in die Jahre gekommenes Projekt, bei dem ich die Datenbank von ehemals TurboPower verwende. Der Code ist jetzt schon etwas in die Jahre gekommen und ist eine Client-Server-Anwendung. Dazu existieren mehrere Programme. Das ist alles unter D5 geproggt (meiner seiner). Nun möchte ich successive einzelne Programme über meine 2007'er IDE ziehen. Leider liegt mir der FlashFiler-Code nur für eine Delphi-Version bis D7 vor. So weit ich weis, wurde die Weiterentwicklung auch eingestellt. Trotzdem ist der Schritt auf eine neue DB aktuell zu groß. Ich würde lieber alle Programme nach und nach in D2007 redesignen und die Schnittstelle zur DB umarbeiten. Um dafür nicht alle Programme mit einem mal updaten zu müssen möchte ich das so gestalten, dass zuerst noch FlashFiler als DB genutzt wird. Später will ich dann auf eine neue DB umstellen (Firebird).

Nun besteht mein Problem darin, dass ich die Packages für FlashFiler nicht sauber unter D2007 compiliert bekomme. Neben der Erkennung der Version der IDE (habe ich in der *.inc) eingearbeitet, werden weitere Fehler gemeldet. Zum Bsp. hier:
Delphi-Quellcode:
const

  {$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}
  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}
Die Fehlermeldung lautet:
Zitat:
[DCC Fehler] ffdb.pas(2040): E2072 Anzahl der Elemente (38) weicht von der Deklaration (42) ab
TFieldMap ist so deklariert:
Delphi-Quellcode:
type
  TFieldMap = array[TFieldType] of Byte;
Offensichtlich definiert hier D2007 mehr Feldtypen als D7. Nun könnte mann das natürlich überarbeiten und anpassen. Ich hab aber die Befürchtung, dass ich das in eine endlose Geschichte gerate.

Hat sich schon mal jemand der Problematik angenommen den FlashFiler-Code auf eine höhere Delphi-Version als D7 anzupassen und kann mir berichten, ob sich der Aufwand lohnt?

Wenn ich an der Korrektur von FlashFiler länger arbeite als an der Einbindung einer neuen DB; Fatal.

Ich dank schon mal im Voraus,

Gruß oki
42
  Mit Zitat antworten Zitat