Tutorial: Verwenden von FireDAC aus einer geräteübergreifenden Anwendung auf Desktop-Plattformen

Aus RAD Studio

Nach oben zu Tutorials zu Datenbanken und LiveBindings


In diesem Tutorial werden die grundlegenden Schritte zum Durchsuchen der von InterBase ToGo verwalteten Daten mithilfe des FireDAC-Frameworks unter Windows und auf dem Mac beschrieben.

Herstellen einer Verbindung zu der Datenbank mit FireDAC

FireDAC ist ein einzigartiger Satz von Komponenten für den universellen Datenzugriff zur Entwicklung von plattformübergreifenden Datenbankanwendungen für Delphi, C++Builder und FreePascal. Durch seine leistungsstarke allgemeine Architektur ermöglicht FireDAC von Delphi aus einen nativen, extrem schnellen, direkten Zugriff auf InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access, Firebird, Informix und weitere.

Der native FireDAC-Treiber für InterBase unterstützt die Editionen Embarcadero InterBase Server, Desktop, Developer, ToGo.

  • Zum Durchsuchen der von Interbase ToGo verwalteten Daten unter Windows muss für FireDAC die folgende x86- oder x64-Clientsoftware auf dem Arbeitsplatzrechner installiert sein:
    • Die Bibliothek IBTOGO.DLL unterstützt die Arbeit mit Datenbanken mit eingebettetem InterBase ToGo von x86-Anwendungen aus.
    • Die Bibliothek IBTOGO64.DLL unterstützt die Arbeit mit Datenbanken mit eingebettetem InterBase ToGo von x64-Anwendungen aus.
  • Um von InterBase ToGo verwaltete Daten unter macOS durchsuchen zu können, benötigt FireDAC die eingebettete InterBase-x86-Datei libibtogo.dylib.

Entwerfen und Einrichten der Benutzeroberfläche

Erstellen Sie ein neues Projekt. Wählen Sie eine Geräteübergreifende HD-Anwendung.

  1. Legen Sie eine TFDConnection-Komponente auf dem Formular ab.
  2. Klicken Sie mit der rechten Maustaste auf die TFDConnection-Komponente, und wählen Sie Verbindungseditor.
  3. Legen Sie im FireDAC-Verbindungseditor die folgenden Parameter der TFDConnection-Komponente fest:
    1. Legen Sie die Eigenschaft Treiber-ID auf IB fest.
    2. Legen Sie den Parameter Database auf C:\Users\Public\Documents\Embarcadero\Studio\37.0\Samples\Data\EMPLOYEE.GDB (Speicherort der Datenbank) fest.
    3. Legen Sie den Parameter User_name auf sysdba fest.
    4. Legen Sie den Parameter Password auf masterkey fest.


    5. Klicken Sie auf die Schaltfläche Testen, um die Verbindung zu testen.


    6. Klicken Sie auf OK, um den Verbindungseditor zu schließen.
  4. Legen Sie im Objektinspektor die folgenden Eigenschaften der TFDConnection-Komponente fest:
    1. Setzen Sie die Eigenschaft LoginPrompt auf False, damit der Benutzer nicht zur Eingabe von Anmeldedaten aufgefordert wird.
    2. Setzen Sie die Eigenschaft Connected auf True.

Verwenden des LiveBindings-Experten

Verwenden Sie den LiveBindings-Experten, um die LiveBindings-Komponenten (TBindSourceDB, TBindNavigator), TFDQuery und Grid hinzuzufügen.

Hinzufügen der LiveBinding-Komponenten

  1. Wählen Sie Ansicht > Tool-Fenster > LiveBindings-Designer aus. Daraufhin und der LiveBindings-Designer geöffnet.
  2. Wählen Sie LiveBindings-Experte() aus.


  3. Wählen Sie auf der Seite Bindungsaufgabe die Option Datenquelle erstellen, und klicken Sie auf Weiter.
  4. Wählen Sie auf der Seite Datenquelle die Option FireDAC, und klicken Sie auf Weiter.
  5. Ändern Sie den Befehlstyp in Abfrage.
  6. Legen Sie die Eigenschaft Befehlstext auf select * from employee fest.


  7. Klicken Sie auf die Schaltfläche Befehl testen.
  8. Klicken Sie auf die Schaltfläche Weiter.
  9. Wählen Sie Datenquellennavigator hinzufügen.
  10. Klicken Sie auf die Schaltfläche Fertig stellen.

Damit wurden die Komponenten TBindSourceDB, TBindNavigator und TFDQuery Ihrem Formular hinzugefügt.

Hinzufügen der Gitter-Komponente

  1. Öffnen Sie erneut den LiveBindings-Experten.
  2. Wählen Sie die Bindungsaufgabe Gitter mit einer Datenquelle verknüpfen aus.


  3. Klicken Sie auf die Schaltfläche Weiter.
  4. Wählen Sie TSringGrid aus.
  5. Klicken Sie auf die Schaltfläche Weiter.
  6. Wählen Sie BindSourceDB1 aus.
  7. Klicken Sie auf die Schaltfläche Fertig stellen, um den Experten zu schließen.

Das Bindungsdiagramm sollte wie in der folgenden Abbildung dargestellt aussehen:


Vorbereiten der Anwendung für die Ausführung

FireDAC verfügt über eine lose verbundene mehrschichtige Architektur, in der Dienste von Schichten bereitgestellt werden. Eine Dienst-API ist als COM-Interface definiert, das von anderen Schichten über den Interface-Generator angefordert werden kann.

Für die ordnungsgemäße Ausführung von FireDAC müssen Sie die Implementierung der Interfaces IFDGUIxWaitCursor und IFDPhysDriver in Ihre Anwendung einbinden.

  1. Wählen Sie die Komponente NavigatorBindSourceDB1 aus, und setzen Sie die Eigenschaft Align auf Top.
  2. Wählen Sie die Komponente StringGridBindSourceDB1 aus, und legen Sie die Eigenschaft Align auf Client fest.
  3. Ziehen Sie die Komponenten TFDGUIxWaitCursor und TFDPhysIBDriverLink auf das Formular.


Bereitstellen der Anwendung für macOS

Bis jetzt haben Sie InterBase auf dem Desktop verwendet. Das bedeutet, dass sich die eigentliche Datenbank auf Ihrer lokalen Festplatte befindet (z. B. C:\Users\Public\Documents\Embarcadero\Studio\37.0\Samples\Data\EMPLOYEES.GDB). Zum Bereitstellen der Anwendung unter macOS müssen Sie die Datenbankdatei in das Mac OS-Dateisystem kopieren (z. B. /Users/<Benutzer>/EMPLOYEE.GDB). Außerdem müssen die InterBase ToGo-Dateien auf macOS bereitgestellt werden.

InterBase ToGo auf macOS bereitstellen

  1. Öffnen Sie den Bereitstellungs-Manager durch Auswahl von Projekt > Bereitstellung.
  2. Wählen Sie in der Dropdown-Liste der Zielplattformen oben im Bereitstellungs-Manager den Eintrag Alle Konfigurationen - macOS-Plattform aus.
  3. Wählen Sie Weitere Dateien hinzufügen ():


  4. Wählen Sie das InterBase ToGo-Datenbankmodul aus, und klicken Sie dann auf OK, um das Dialogfeld Weitere Dateien zu schließen:


    Möglicherweise haben Sie von Embarcadero eine Lizenzdatei für ToGo mit dem Muster reg_nnnnnnn.txt (reg_nnnnnnn.txt ist eine generierte Zahl) erhalten:
    • Wenn Sie die Datei unter dem Namen reg_ibtogo.txt (im Verzeichnis C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBase15) gespeichert haben, können Sie einfach die gewünschte Lizenz auswählen.
    • Wenn Sie die Datei unter ihrem Originalnamen gespeichert haben, dann wählen Sie Dateien hinzufügen und nehmen die Lizenzdatei in die Liste der für die Bereitstellung der Anwendung erforderlichen Dateien auf.

Code für die Verbindung zu einer Datenbankdatei unter macOS ändern

Wie im vorigen Schritt beschrieben, wird die TFDConnection-Komponente mit einer Datenbank unter Windows verbunden. Deshalb müssen Sie den Speicherort der Datei vor dem Herstellen einer Verbindung zu der Datenbank wie folgt ändern:

  1. Wählen Sie im Formular-Designer die FDConnection1-Komponente aus.
  2. Doppelklicken Sie im Objektinspektor auf das Feld Wert des BeforeConnect-Ereignisses.
  3. Fügen Sie den folgenden Code für diese Ereignisbehandlungsroutine hinzu:
Delphi:
procedure TForm9.FDConnection1BeforeConnect(Sender: TObject);
begin
{$IFDEF MACOS}
  FDConnection1.Params.Values['Database']:= '$(DOC)/EMPLOYEE.GDB';
{$ENDIF}
end;
C++Builder:
void __fastcall TForm9::FDConnection1BeforeConnect(TObject *Sender) {
#ifdef __MACOS__
 FDConnection1->Params->Values["Database"] = "$(DOC)/EMPLOYEE.GDB";
#endif
}

Beachten Sie, dass $(DOC) eine Pfadvariable ist, mit der Sie das Schreiben von Pfadausdrücken vereinfachen können. Unter macOS zeigt die Variable $(DOC) auf das Stammverzeichnis des Benutzers (/Users/<Benutzer>).

Anwendung unter Windows und macOS ausführen

Ihre Anwendung kann nun ausgeführt werden. Sie sollten genau wie in der IDE die Daten durchsuchen können. Sie können mit der TBindNavigator-Komponente auch Datensätze der Datenbank ändern.

So führen Sie die Anwendung aus:

  1. Wählen Sie im Projekte-Fenster die Zielplattform aus.
  2. Wählen Sie einen der folgenden Befehle aus:
    • Start > Start
    • Start > Ohne Debugger ausführen


Siehe auch