Tutoriel mobile : Utilisation de FireDAC dans les applications mobiles (iOS et Android)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Tutoriels mobiles : Développement d'applications mobiles (iOS et Android)

Ce tutoriel décrit les étapes fondamentales permettant d'utiliser SQLite en tant que stockage de données local sur votre périphérique mobile à travers le framework FireDAC.

iOS Android

IPodRunTime.png

Erreur lors de la création de la miniature : Fichier manquant

Utilisation de FireDAC pour se connecter à la base de données

FireDAC est un ensemble unique de composants d'accès aux données universel conçus pour le développement d'applications de bases de données multi-périphériques pour Delphi et C++Builder. Grâce à son architecture commune, FireDAC permet un accès direct, rapide et natif de Delphi vers InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access, Firebird, Informix, et bien d'autres.

Le pilote natif FireDAC prend en charge la base de données SQLite version 3.0 et ultérieure. Pour en savoir plus sur l'utilisation de SQLite dans FireDAC pour une application Delphi, lisez "Utilisation de SQLite avec FireDAC".

Pour utiliser SQLite dans votre application, le fichier sqlite3.dll doit être présent sur votre système de développement. Si le fichier n'est pas présent, téléchargez sqlite3.dll depuis http://www.sqlite.org/download.html (EN) vers votre chemin système (tel que C:\Windows\SysWOW64 pour Windows 64 bits).

Conception et configuration de l'interface utilisateur

Créez un nouveau projet. Choisissez une Application multi-périphérique.

  1. Déposez un composant TFDConnection sur la fiche.
  2. Cliquez avec le bouton droit sur le composant TFDConnection et choisissez Editeur de connexion.
  3. Dans l'éditeur de connexion FireDAC, définissez les paramètres suivants du composant TFDConnection :
    1. Définissez la propriété Driver ID sur SQLite.
    2. Définissez le paramètre Database sur :
      C:\Utilisateurs\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\Employees.s3db (emplacement de la base de données)
      et cliquez sur Ouvrir dans la boîte de dialogue d'ouverture de fichier.
      (Pour afficher Employees.s3db dans le dialogue Ouvrir, définissez l'option Tous les fichiers (*.*).)
      ConnectionEdtFD.png

    3. Cliquez sur le bouton Tester pour tester la connexion.
      TestConnectionSuccess.png

    4. Cliquez sur OK pour fermer l'éditeur de connexion.
  4. Dans l'inspecteur d'objets, définissez les propriétés suivantes du TFDConnection :
    1. Définissez la propriété LoginPrompt sur False, afin que l'utilisateur ne reçoive pas d'invite de connexion.
    2. Définissez la propriété Connected sur True.

Utilisation de l'expert LiveBindings

Utilisez l'expert LiveBindings pour ajouter les composants LiveBindings (TBindSourceDB, TBindingsList), TFDQuery, et le composant TListView.

Ajout des composants LiveBindings

  1. Sélectionnez Voir > Concepteur LiveBindings et le Concepteur LiveBindings s'ouvre.
  2. Sélectionnez Expert LiveBindings.
    SelectLiveBindWizard.png

  3. Sélectionnez la tâche de liaison Créer une source de données.
  4. Cliquez sur le bouton Suivant.
  5. Sélectionnez le nom de classe FireDAC.
  6. Cliquez sur le bouton Suivant.
  7. Changez le Type de la commande par Query.
  8. Définissez la propriété Texte de la commande sur select Name, Department, Seniority from Employee order by Department.
    LiveBindWizardFD.png

  9. Cliquez sur le bouton Tester la commande.
  10. Cliquez sur le bouton Suivant.
  11. Cliquez sur le bouton Terminer.

A ce stade, les composants TBindSourceDB et TFDQuery ont été ajoutés sur la fiche.

Ajouter le composant Vue liste

  1. Rouvrez l'expert LiveBindings.
  2. Sélectionnez la tâche de liaison Lier un contrôle à un champ.
    ControlFieldWizard.png

  3. Cliquez sur le bouton Suivant.
  4. Sélectionnez TListView.
  5. Cliquez sur le bouton Suivant.
  6. Sélectionnez BindSourceDB1.
  7. Cliquez sur le bouton Suivant.
  8. Sélectionnez le nom de champ Name.
    FieldNameWizard.png

  9. Cliquez sur le bouton Suivant.
  10. Cliquez sur le bouton Terminer pour fermer l'expert.

Utilisation de l'expert LiveBindings

Concepteur LiveBindings

Utilisez le Concepteur LiveBindings pour ajouter de nouvelles connexions entre les composants TBindSourceDB et TListView.

  1. Sélectionnez le membre ItemHeader.Text depuis TListView.
  2. Effectuez une liaison au membre Department du composant BindSourceDB1 par glissement (une ligne de connexion apparaît).
  3. Sélectionnez le membre Item.Text depuis TListView.
  4. Effectuez une liaison au membre Name du composant BindSourceDB1 par glissement (une ligne de connexion apparaît).
  5. Dans l'inspecteur d'objets, définissez les propriétés suivantes du TListView :
    1. Définissez la propriété ItemAppearance sur ImageListItemRightButton.
      Dans le Concepteur LiveBindings, le TListView doit avoir un nouveau membre, Item.ButtonText.
    2. Définissez la propriété Align sur Client.
  6. Dans le Concepteur LiveBindings, sélectionnez le membre Item.ButtonText depuis TListView.
  7. Effectuez une liaison au membre Seniority du composant BindSourceDB1 par glissement (une ligne de connexion apparaît).

Préparation de votre application pour l'exécution

FireDAC a une architecture multi-couche associée de manière souple, dans laquelle les couches fournissent des services. Une API de services est une interface COM à laquelle d'autres couches accèdent en utilisant la fabrique d'interfaces.

Pour un bon fonctionnement de FireDAC, vous devez lier l'implémentation des interfaces IFDGUIxWaitCursor et IFDPhysDriver à votre application.

Pour ce faire, déposez les composants TFDGUIxWaitCursor et TFDPhysSQLiteDriverLink sur la fiche.

Configuration du déploiement de votre base de données sur un mobile

Jusqu'ici, vous avez utilisé SQLite sur votre bureau. Cela signifie que la base de données réelle est située sur votre disque dur local (par exemple, C:\Utilisateurs\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\Employees.s3db). Sur le périphérique mobile, les applications résident dans le Sandbox, et vous pouvez typiquement lire et écrire seulement les données qui sont situées dans le dossier Documents (pour un périphérique iOS) et dans le stockage interne (pour un périphérique Android) sous votre dossier d'application.

Pour établir une connexion à une base de données locale sur un mobile, vous devez effectuer les actions suivantes :

  • Déployer la base de données sur le périphérique mobile.
  • Changer la configuration (pour se connecter au fichier de base de données) en choisissant un fichier local sous le dossier Documents (pour un périphérique iOS) ou dans le stockage interne (pour un périphérique Android).

Ajout et configuration de votre fichier de base de données dans le Gestionnaire de déploiement

Avant d'exécuter votre application sur un mobile, vous devez configurer le déploiement pour votre fichier de base de données (Employees.s3db).

  1. Ouvrez le Gestionnaire de déploiement en sélectionnant Projet > Déploiement.
  2. Sélectionnez Ajouter des fichiers et sélectionnez le fichier de base de données (par exemple, C:\Utilisateurs\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\Employees.s3db).
    AddingDatabaseFile.png

  3. Sélectionnez Employees.s3db et définissez son chemin distant sur StartUp\Documents\ (pour la plate-forme iOS) ou assets\internal\ (pour la plate-forme Android).
    Chemin distant sur la plate-forme iOS
    Erreur lors de la création de la miniature : Fichier manquant


    Chemin distant sur la plate-forme Android
    Erreur lors de la création de la miniature : Fichier manquant


  4. Sélectionnez la colonne Plates-formes (double-cliquez sur les points de suspension [...] dans la ligne relative à Employees.s3db) :
    1. Assurez-vous que iOSSimulator, iOSDevice32 et iOSDevice64 ou Android sont présents pour Employees.s3db.
    2. Retirez Win32 de la liste s'il est présent (vous n'avez pas à copier les fichiers de base de données sur la plate-forme Win32).
  5. Sélectionnez Toutes les configurations - Périphérique iOS - Plate-forme 32 bits, Toutes les configurations - Périphérique iOS - Plate-forme 64 bits ou Toutes les configurations - Plate-forme Android et assurez-vous que Employees.s3db est défini pour être déployé sur StartUp\Documents\ ou assets\internal\.

Conformément à la configuration définie, quand vous exécutez l'app sur le périphérique mobile, le fichier de base de données (Employees.s3db) est déployé dans le dossier Documents (pour la plate-forme iOS) ou dans le stockage interne (pour la plate-forme Android) de la zone sandbox de votre application.

Modification de votre code pour se connecter à un fichier de base de données local sur un mobile

Les fonctionnalités élémentaires de cette application sont maintenant implémentées. Le fichier de base de données utilisé dans cette application a été créé sur Windows, et le fichier n'est pas disponible sur votre périphérique mobile, sauf si vous l'avez copié sur le périphérique mobile ou créé à la volée.

Spécification de l'emplacement de la base de données SQLite sur le périphérique mobile

  1. Dans le Concepteur de fiches, sélectionnez le composant FDConnection1.
  2. Dans l'inspecteur d'objets, double-cliquez sur l'événement BeforeConnect.
  3. Ajoutez le code suivant à ce gestionnaire d'événement :

Delphi :

procedure TForm1.FDConnection1BeforeConnect(Sender: TObject);
begin
  FDConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'Employees.s3db');
end;

L'enregistrement TPath est déclaré dans l'unité System.IOUtils. Vous devez donc ajouter System.IOUtils à la clause uses de votre unité.

C++ (seulement pour iOS) :

void __fastcall TForm1::FDConnection1BeforeConnect(TObject *Sender)
{
          FDConnection1->Params->Values["ColumnMetadataSupported"] = "False";
          FDConnection1->Params->Values["Database"] = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "Employees.s3db");
}

L'enregistrement TPath est déclaré dans la bibliothèque System.IOUtils, vous devez donc ajouter #include <System.IOUtils.hpp> dans votre unité d'en-tête.

Exécution de votre application sur le simulateur ou sur le périphérique mobile

Votre application est maintenant prête pour l'exécution (sélectionnez Exécuter > Exécuter).

iOS Android

IPodRunTime.png

Erreur lors de la création de la miniature : Fichier manquant

Voir aussi