Migration d'applications dbExpress (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Migration des applications dbExpress vers FireDAC


Cet exemple explique étape par étape la migration de l'application démo Delphi (MeetingOrganizer) vers FireDAC.

Les fichiers utilisés dans cette application démo se trouvent dans C:\Utilisateurs\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo.

  • L'utilitaire migrate.bat se trouve dans le dossier racine.
  • L'application démo MeetingOrganizer se trouve dans le dossier Forms.
  • MEETINGORGANIZER.GDB se trouve dans le dossier Database.
  • Le fichier de connexion dbExpress (dbxconnections.ini) se trouve dans le dossier racine.

Etape 1 : Exécution de l'utilitaire Migrate.bat

Pour exécuter l'utilitaire migrate.bat :

  1. Accédez au dossier C:\Utilisateurs\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo.
  2. Double-cliquez sur l'application migration.bat.

L'utilitaire migrate.bat crée un nouveau dossier sous le dossier Forms, appelé FireDAC_MeetingOrg, et copie les fichiers migrés de l'application dbExpress dans le dossier FireDAC_MeetingOrg. Les fichiers source originaux de l'application MeetingOrganizer sont conservés dans le dossier d'origine.

L'utilitaire migrate.bat exécute l'outil reFind de RAD Studio afin de remplacer les termes dbExpress de l'application par leurs équivalents FireDAC.

Etape 2 : Définition d'une définition de connexion FireDAC persistante

La connexion dbExpress MO originale est définie dans le fichier dbxconnections.ini. Vous devez créer la même définition de connexion FireDAC pour la démonstration MeetingOrganizer.

Pour créer une nouvelle définition de connexion FireDAC persistante, vous pouvez au choix utiliser l'explorateur FireDAC ou modifier le fichier FDConnectionDefs.ini.

  1. Créez une nouvelle définition de connexion FireDAC.
  2. Définissez les champs suivants de la connexion :
    • Name : MO
    • DriverID : IB
    • Database : C:\Data\MEETINGORGANIZER.GDB
    • User_Name : sysdba
    • Password : masterkey
  3. Enregistrez la nouvelle définition de connexion.
  4. Accédez au dossier C:\Utilisateurs\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Database
  5. Copiez la base de données MEETINGORGANIZER.GDB d'Interbase vers C:\Data\MEETINGORGANIZER.GDB

Voici la définition de connexion la plus simple pour l'application MeetingOrganizer dans le fichier FDConnectionDefs.ini :

 [MO]
 DriverID=IB
 Database=C:\Data\MEETINGORGANIZER.GDB
 User_Name=sysdba
 Password=masterkey
Remarque : Vous devez fermer RAD Studio.

Etape 3 : Préparation de votre application FireDAC pour l'exécution

Vous devez ajouter un pilote FireDAC spécifique au SGBD à votre application ainsi que les unités nécessaires (pour les interfaces IFDGUIxWaitCursor et IFDPhysDriver).

L'application exemple MeetingOrganizer utilise InterBase dans une application FireMonkey :

  1. Accédez au dossier C:\Utilisateurs\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\Demo\Forms.
  2. Ouvrez le projet MeetingOrganizer.dproj.
  3. Dans l'EDI, ouvrez le fichier de l'unité uMainDM.pas.
  4. Déposez un composant TFDPhysIBDriverLink sur votre projet.
  5. Déposez un composant TFDGUIxWaitCursor.

Etape 4 : Configuration des paramètres de connexion

Effectuez les modifications suivantes dans le fichier uMainDM.pas :

  1. Sélectionnez le composant SQLConnection TFDConnection.
  2. Dans l'inspecteur d'objets, modifiez la valeur de ConnectionDefName en MO.
  3. Ouvrez le fichier .dfm ou .fmx avec un éditeur de texte ou appuyez sur Alt+F12.
  4. Configurez le composant TFDConnection dans le module de données (modifiez le Params.Strings dbExpress existant).
    • Définissez ConnectionDefName sur la définition de connexion InterBase que vous avez créée et remplacez le nom d'utilisateur et le mot de passe par ceux qui conviennent.
        Params.Strings = (
          'ConnectionDef=MO'
          'Database=C:\Data\MeetingOrganizer.gdb'
          'User_Name=sysdba'
          'Password=masterkey')
    
  5. Accédez à l'éditeur de code ou appuyez sur F12.
  6. Commentez l'implémentation de la procédure SQLConnectionBeforeConnect :
    procedure TMainDM.SQLConnectionBeforeConnect(Sender: TObject);
    begin
    //  SQLConnection.LoadParamsFromIniFile
    //    (IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) +
    //    'dbxconnections.ini');
    end;
    

Etape 5 : Définition de la compatibilité des mappages des types de données

Les pilotes InterBase dbExpress et InterBase FireDAC ont les mêmes mappages de types de données. La seule exception est "[VAR]CHAR(N) CHARACTER SET OCTETS" :

  • dbExpress le mappe en ftString / ftWideString.
  • FireDAC le mappe en ftBytes / ftVarBytes.

Le mappage et le comportement peuvent également être légèrement différents dans d'autres zones. Pour les unifier :

  1. Sélectionnez le composant SQLConnection TFDConnection dans le fichier uMainDM.pas.
  2. Dans l'inspecteur d'objets :

Etape 6 : Exécution de la démo migrée MeetingOrganizer

L'application MeetingOrganizer vous permet d'organiser des réunions des utilisateurs enregistrés de votre application dans des salles enregistrées. Utilisez l'application MeetingOrganizer pour enregistrer et modifier les informations relatives à vos utilisateurs, salles de conférence et salles de réunion.

  1. Pour exécuter l'application, choisissez Exécuter ou appuyez sur F9.
  2. Pour vous connecter à l'application MeetingOrganizer, utilisez l'utilisateur test enregistré suivant :
    • User Login: borland
    • Password : borland
Remarque : Ce n'est pas votre utilisateur qui accède à MEETINGORGANIZER.GDB, mais un utilisateur enregistré pour l'application MeetingOrganizer.

Voir aussi