Migration von dbExpress-Anwendungen (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Migrieren von dbExpress-Anwendungen nach FireDAC


In diesem Beispiel wird Schritt für Schritt gezeigt, wie Sie die Delphi-Demoanwendung (MeetingOrganizer) nach FireDAC migrieren.

Die benötigen Dateien für diese Demoanwendung finden Sie in C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo.

  • Das Hilfsprogramm migrate.bat befindet sich im Stammordner.
  • Die Demoanwendung MeetingOrganizer befindet sich im Ordner Forms.
  • Die MEETINGORGANIZER.GDB befindet sich im Ordner Database.
  • Die dbExpress-Verbindungsdatei (dbxconnections.ini) befindet sich im Stammordner.

Schritt 1: Ausführen des Hilfsprogramms Migrate.bat

So führen Sie das Hilfsprogramm migrate.bat aus:

  1. Wechseln Sie zum Ordner C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo.
  2. Doppelklicken Sie auf die Anwendung migration.bat.

Das Hilfsprogramm migrate.bat erstellt im Ordner Forms den neuen Ordner FireDAC_MeetingOrg und kopiert die migrierten Dateien der dbExpress-Anwendung in den Ordner FireDAC_MeetingOrg. Die Originalquelltextdateien der Anwendung MeetingOrganizer werden im Originalordner beibehalten.

Das Hilfsprogramm migrate.bat führt das RAD Studio-Tool reFind aus, um die dbExpress-Begriffe der Anwendung durch die FireDAC-Entsprechungen zu ersetzen.

Schritt 2: Festlegen einer persistenten FireDAC-Verbindungsdefinition

Die originale MO-dbExpress-Verbindung ist in der Datei dbxconnections.ini definiert. Sie müssen dieselbe FireDAC-Verbindungsdefinition für die MeetingOrganizer-Demo erstellen.

Um eine neue persistente FireDAC-Verbindungsdefinition zu erstellen, können Sie entweder den FireDAC-Explorer verwenden oder die Datei FDConnectionDefs.ini bearbeiten.

  1. Erstellen Sie eine neue FireDAC-Verbindungsdefinition.
  2. Legen Sie die folgenden Felder der Verbindung fest:
    • Name: MO
    • DriverID: IB
    • Database: C:\Data\MEETINGORGANIZER.GDB
    • User_Name: sysdba
    • Password: masterkey
  3. Speichern Sie die neue Verbindungsdefinition.
  4. Wechseln Sie zum Ordner C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Database.
  5. Kopieren Sie die InterBase-Datenbank MEETINGORGANIZER.GDB nach C:\Data\MEETINGORGANIZER.GDB.

Dies ist die einfachste Verbindungsdefinition für die MeetingOrganizer-Anwendung in der FDConnectionDefs.ini-Datei:

 [MO]
 DriverID=IB
 Database=C:\Data\MEETINGORGANIZER.GDB
 User_Name=sysdba
 Password=masterkey
Hinweis: Sie müssen RAD Studio schließen.

Schritt 3: Vorbereiten der FireDAC-Anwendung für die Ausführung

Sie müssen Ihrer Anwendung einen DBMS-spezifischen FireDAC-Treiber und die benötigten Units (für die Interfaces IFDGUIxWaitCursor und IFDPhysDriver) hinzufügen.

Für die Beispielanwendung MeetingOrganizer wird InterBase in einer FireMonkey-Anwendung verwendet:

  1. Wechseln Sie zum Ordner C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Forms.
  2. Öffnen Sie das Projekt MeetingOrganizer.dproj.
  3. Öffnen Sie in der IDE die Unit-Datei uMainDM.pas.
  4. Fügen Sie Ihrem Projekt eine TFDPhysIBDriverLink-Komponente hinzu.
  5. Fügen Sie eine TFDGUIxWaitCursor-Komponente hinzu.

Schritt 4: Festlegen von Verbindungsparametern

Nehmen Sie in der Datei uMainDM.pas die folgenden Änderungen vor:

  1. Wählen Sie die SQLConnection-TFDConnection-Komponente aus.
  2. Ändern Sie im Objektinspektor den Wert von ConnectionDefName in MO.
  3. Öffnen Sie die DFM- oder FMX-Datei in einem Texteditor, oder drücken Sie Alt+F12.
  4. Konfigurieren Sie die TFDConnection-Komponente im Datenmodul (ändern Sie die vorhandenen dbExpress-Params.Strings).
        Params.Strings = (
          'ConnectionDef=MO'
          'Database=C:\Data\MeetingOrganizer.gdb'
          'User_Name=sysdba'
          'Password=masterkey')
    
  5. Wechseln Sie zum Quelltext-Editor, oder drücken Sie F12.
  6. Kommentieren Sie die Implementierung der Prozedur SQLConnectionBeforeConnect aus:
    procedure TMainDM.SQLConnectionBeforeConnect(Sender: TObject);
    begin
    //  SQLConnection.LoadParamsFromIniFile
    //    (IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) +
    //    'dbxconnections.ini');
    end;
    

Schritt 5: Festlegen der Kompatibilität von Datentypzuordnungen

Der InterBase-dbExpress-Treiber und FireDAC-InterBase-Treiber verwenden die gleichen Datentypzuordnungen. Die einzige Ausnahme stellt "[VAR]CHAR(N) CHARACTER SET OCTETS" dar:

  • dbExpress ordnet diesen Datentyp zu ftString/ftWideString zu.
  • FireDAC ordnet diesen Datentyp zu ftBytes/ftVarBytes zu.

Trotzdem können Zuordnung und Verhalten in anderen Bereich geringfügig abweichen. So vereinheitlichen Sie Zuordnung und Verhalten:

  1. Wählen Sie die SQLConnection-TFDConnection-Komponente in der Datei uMainDM.pas aus.
  2. Im Objektinspektor:

Schritt 6: Ausführen der migrierten Demo MeetingOrganizer

Mit der Anwendung MeetingOrganizer können Sie Meetings für die registrierten Benutzer Ihrer Anwendung in registrierten Räumen organisieren. Verwenden Sie die Anwendung MeetingOrganizer, um die Informationen Ihrer Benutzer, Konferenzräume und Meeting-Räume zu registrieren und zu ändern.

  1. Wählen Sie Start, oder drücken Sie F9, um die Anwendung auszuführen.
  2. Verwenden Sie für die Anmeldung bei der Anwendung MeetingOrganizer den folgenden registrierten Testbenutzer:
    • User Login: borland
    • Password: borland
Hinweis: Dabei handelt es sich nicht um Ihren Benutzer für den Zugriff auf MEETINGORGANIZER.GDB, sondern um einen registrierten Benutzer der Anwendung MeetingOrganizer.

Siehe auch