Mobile-Tutorial: Herstellen einer Verbindung zu Unternehmensdatenbanken von mobilen Client-Anwendungen aus (iOS und Android)
Nach oben zu Mobile-Tutorials: Mobile Anwendungsentwicklung (iOS und Android)
Bevor Sie dieses Tutorial beginnen:
- Arbeiten Sie die folgenden Tutorials durch:
- Wählen Sie Start | Alle Programme | Embarcadero InterBase 2020 | <xx>-bit instance = gd_db | InterBase Server Manager und starten Sie den InterBase-Server. Der InterBase-Server muss ausgeführt werden, bevor Sie das Beispiel erstellen oder ausführen.
Inhaltsverzeichnis
In diesem Tutorial wird beschrieben, wie Sie von einer mobilen Client-Anwendung aus eine Verbindung zu einer Unternehmensdatenbank herstellen.
Für die Verbindung zu einer Unternehmensdatenbank benötigen Sie eine Client-Bibliothek. Meistens wird die Client-Bibliothek vom Hersteller der Datenbank als DLL bereitgestellt. Für mobile Geräte ist dieses Vorgehen nicht angebracht, weil keine Client-Bibliothek verfügbar ist. Zur Lösung dieses Problems können Sie eine Mittelschicht für die Verbindung zu einer Unternehmensdatenbank entwickeln, und Ihre Anwendung kann mit der Mittelschicht interagieren.
RAD Studio stellt das DataSnap-Framework bereit, mit dem Sie die Mittelschicht, fast ohne zu programmieren, entwickeln (und darauf zugreifen) können. In diesem Tutorial werden die Schritte zum Entwickeln der Mittelschicht und des mobilen Clients beschrieben.
Erstellen der Mittelschicht: Ein DataSnap-Server
Erstellen Sie zunächst einen DataSnap-Server, der eine Tabelle von einem Datenbankserver bereitstellt. In diesem Tutorial wird als DataSnap-Server eine DataSnap-Server-VCL-Formularanwendung verwendet.
Hinweis: In diesem Tutorial dient der DataSnap-Server (eine VCL-Anwendung) als Mittelschicht in einer mehrschichtigen Datenbankanwendung. Sie können eine Instanz eines DataSnap-Servers einfach erstellen und später wieder löschen. Wenn Ihnen die grundlegenden Schritte klar sind, können Sie die Mittelschicht in eine Windows-Dienstanwendung umwandeln.
Erstellen einer DataSnap-Server-VCL-Anwendung
- Um ein neues Delphi- oder C++-Projekt zu erstellen, wählen Sie Datei > Neu > Weitere, und im Dialogfeld Objektgalerie wählen Sie dann:
- Für Delphi: Delphi-Projekte > DataSnap-Server > DataSnap-Server
- Für C++: C++Builder-Projekte > DataSnap-Server > DataSnap-Server
- Der Experte Neuer DataSnap-Server wird angezeigt:
- Wählen Sie als ersten Schritt Formularanwendung als Projekttyp aus.
- Wählen Sie als zweiten Schritt VCL-Anwendung als Anwendungstyp aus.
- Wählen Sie als dritten Schritt das Protokoll TCP/IP, die Servermethodenklasse und Beispielmethoden aus der Liste aus.
- Belassen Sie im vierten Schritt die Einstellung des Standard-TCP/IP Kommunikations-Ports auf 211. Damit wird sichergestellt, dass die Kommunikation zwischen dem Client und dem Server über den Standard-DataSnap-Port ausgeführt wird.
- Wählen Sie als fünften und letzten Schritt TDSServerModule als Vorfahre für die Servermethoden aus.
- Speichern Sie die neue Formular-Unit unter DataSnapServerUnit.
- Wechseln Sie zu DataSnapServerUnit, und ändern Sie die Eigenschaft Name des Formulars in DSServerForm.
- Speichern Sie die Servermethoden-Unit (vom Experten standardmäßig als ServerMethodsUnit1 erstellt) unter dem Namen ServerModuleUnit.
- Speichern Sie die Servercontainer-Unit (vom Experten standardmäßig als ServerContainerUnit1 erstellt) unter dem Namen ServerContainerUnit.
- Speichern Sie das neue Projekt unter DataSnapServerProject.
- Wählen Sie in der Projektverwaltung ProjectGroup1 aus, und speichern Sie das Projekt unter DataSnapTutorialProjectGroup.groupproj.
Definieren einer Datenmenge für den DataSnap-Server
- Wechseln Sie zur Datei ServerContainerUnit.pas, und ersetzen Sie für Delphi die uses-Klausel in der Implementierung durch
uses Winapi.Windows, ServerModuleUnit
, und ersetzen Sie für C++ in ServerContainerUnit.cpp #include "ServerMethodsUnit.h" durch#include "ServerModuleUnit.h"
. - Wechseln Sie zur Datei ServerModuleUnit.pas.
- Ändern Sie im Formular-Designer die Eigenschaft Name des Servermoduls in DSServerModule_EMPLOYEE.
- Konfigurieren Sie die folgenden Komponenten für das Servermodul:
- Ziehen Sie eine TSQLConnection-Komponente in das Servermodul, und legen Sie die folgenden Eigenschaften fest:
- TSQLConnection kapselt die dbExpress-Verbindung zu einem Datenbankserver.
- Setzen Sie die Eigenschaft Name auf SQLConnection_EMPLOYEE.
- Setzen Sie die Eigenschaft LoginPrompt auf False.
- Setzen Sie Driver auf InterBase Server.
-
- Hinweis: Stellen Sie sicher, dass der InterBase-Server ausgeführt wird.
- Erweitern Sie den Knoten Driver, und setzen Sie die Eigenschaft DataBase auf
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEE.GDB
. - Setzen Sie Eigenschaft Connected auf True. Falls Sie eine Fehlermeldung erhalten, überprüfen Sie die Driver-Eigenschaften:
- Ziehen Sie eine TSQLDataSet-Komponente in das Servermodul, und legen Sie die folgenden Eigenschaften fest:
- TSQLDataSet stellt die Daten dar, die mit dbExpress abgerufen wurden.
- Setzen Sie die Eigenschaft Name auf SQLDataSet_EMPLOYEE.
- Setzen Sie die Eigenschaft SQLConnection auf SQLConnection_EMPLOYEE.
- Setzen Sie die Eigenschaft CommandType auf ctTable.
- Setzen Sie die Eigenschaft CommandText auf EMPLOYEE.
- Setzen Sie die Eigenschaft Active auf True. Falls Sie eine Fehlermeldung erhalten, überprüfen Sie die Eigenschaften, die Sie gerade konfiguriert haben.
- Ziehen Sie eine TDataSetProvider-Komponente in das Servermodul, und legen Sie die folgenden Eigenschaften fest:
- Die Komponente TDataSetProvider packt Daten aus einer Datenmenge und übergibt ein oder mehrere übertragbare Datenpakete an den DataSnap-Client.
- Ziehen Sie eine TSQLConnection-Komponente in das Servermodul, und legen Sie die folgenden Eigenschaften fest:
Hinweis: In diesem Tutorial wird InterBase verwendet. Sie können aber mit denselben Schritten eine Verbindung zu jedem beliebigen Datenbankserver herstellen. Wählen Sie für die Verbindung den entsprechenden Treiber und andere Eigenschaften für die jeweilige Datenbank aus.
Bereitstellen der Datenmenge vom DataSnap-Server
Sie haben gerade ein neues Servermodul mit einer DataSet-Komponente und einer DataSetProvider-Komponente erstellt, die Daten in die nächste Schicht packt. Als Nächstes muss das Servermodul für den DataSnap-Client bereitgestellt werden.
- Öffnen Sie im Formular-Designer ServerContainerUnit.
- Wählen Sie DSServerClass1, und aktualisieren Sie die vorhandene Ereignisbehandlungsroutine für das Ereignis OnGetClass. Fügen Sie der Ereignisbehandlungsroutine DSServerClass1 den folgenden Quelltext hinzu:
Delphi:
procedure TServerContainer1.DSServerClass1GetClass(DSServerClass: TDSServerClass;
var PersistentClass: TPersistentClass);
begin
PersistentClass := TDSServerModule_EMPLOYEE;
end;
C++ (nur für iOS):
void __fastcall TServerContainer1::DSServerClass1GetClass(TDSServerClass *DSServerClass,
TPersistentClass &PersistentClass)
{
PersistentClass = __classid(TDSServerModule_EMPLOYEE);
}
Mit dieser Ereignisbehandlungsroutine stellt der DataSnap-Server Provider und public-Methoden in dieser Klasse für einen DataSnap-Client bereit. Ausgehend von den Schritten im vorherigen Abschnitt wird nun die Komponente DataSetProvider_EMPLOYEE DataSetProvider für den DataSnap-Client bereitgestellt.
Ausführen des DataSnap-Servers
Die Implementierung des DataSnap-Servers ist abgeschlossen. Klicken Sie mit der rechten Maustaste auf DataSnapServerProject.exe, und wählen Sie Ohne Debugger ausführen.
Der DataSnap-Server wird nun auf Ihrem Windows-Computer ausgeführt. Da dieser DataSnap-Server keine UI-Elemente hat, sieht er wie ein leeres Formular aus, und das ist hier genau das erwartete Verhalten.
Erstellen einer mobilen Anwendung für die Verbindung zum DataSnap-Server
Als Nächstes wird die mobile Client-Anwendung erstellt.
- Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf DataSnapTutorialProjectGroup, und wählen Sie Neues Projekt hinzufügen.
- Wählen Sie auf der Seite Delphi-Projekte den Eintrag Geräteübergreifende Anwendung aus:
- Speichern Sie die neue Unit unter DataSnapClientUnit.
- Speichern Sie das neue Projekt unter DataSnapClientProject.
- Öffnen Sie DataSnapClientUnit, und ändern Sie die Eigenschaft Name des Formulars in DSClientForm.
- Ziehen Sie die folgenden Komponenten in den Formular-Designer:
- TSQLConnection (SQLConnection1)
- TSQLConnection kapselt die dbExpress-Verbindung zu einem Datenbankserver. Außerdem unterstützt die Komponente den DataSnap-Server.
- Setzen Sie die Eigenschaft Driver auf DataSnap.
- Erweitern Sie die Eigenschaft Driver, und setzen Sie die Eigenschaft HostName auf den Host-Namen oder die IP-Adresse des DataSnap-Servers.
- Setzen Sie die Eigenschaft LoginPrompt auf False.
- Setzen Sie Eigenschaft Connected auf True.
- Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie die gerade festgelegten Eigenschaften nochmals.
- TDSProviderConnection (DSProviderConnection1)
- Die Komponente TDSProviderConnection stellt die Konnektivität zu DataSnap-Servern mithilfe von dbExpress her.
- Setzen Sie die Eigenschaft SQLConnection auf SQLConnection1.
- Setzen Sie ServerClassName auf TDSServerModule_EMPLOYEE. Dieser Name muss mit dem Namen der Klasse des Servermoduls des DataSnap-Servers übereinstimmen.
- Setzen Sie Eigenschaft Connected auf True.
- TClientDataSet (ClientDataSet1)
- TClientDataSet implementiert eine datenbankunabhängige Datenmenge, die als lokaler Speicherpuffer der Datensätze aus einer anderen Datenmenge verwendet werden kann.
- Setzen Sie die Eigenschaft RemoteServer auf DSProviderConnection1.
- Setzen Sie die Eigenschaft ProviderName auf DataSetProvider_EMPLOYEE. Dieser Name muss mit dem Namen des Providers für den DataSnap-Server übereinstimmen.
- Setzen Sie die Eigenschaft Active auf True.
- TListBox
- Setzen Sie die Eigenschaft Align auf Client:
- TSQLConnection (SQLConnection1)
- Öffnen Sie den LiveBindings-Designer, und verbinden Sie die Daten und die Benutzeroberfläche folgendermaßen:
iOS |
Android |
---|---|
![]() |
![]() |
Bereitstellen der MIDAS-Bibliothek auf dem iOS-Simulator
Damit Ihre Anwendung auf dem iOS-Simulator ausgeführt werden kann, müssen Sie die folgenden Dateien bereitstellen:
- MIDAS-Bibliothek
- Öffnen Sie den Bereitstellungs-Manager durch Auswahl von Projekt > Bereitstellung.
- Wählen Sie Weitere Dateien hinzufügen (
):
- Wählen Sie das folgende Modul aus, und klicken Sie dann auf OK, um den Bereitstellungs-Manager zu schließen:
Ausführen der Anwendung auf der mobilen Plattform
Ihre Anwendung kann nun ausgeführt werden.
Wählen Sie in der Projektverwaltung die mobile Zielplattform, und führen Sie Ihre Anwendung aus. Sie sollten genau wie in der IDE durch die Daten blättern können.
Siehe auch
- Mobile-Tutorial: Verwenden von InterBase ToGo mit dbExpress (iOS und Android)
- Mobile-Tutorial: Verwenden von dbExpress und SQLite (iOS und Android)
- Mobile-Tutorial: Verwenden von FireDAC in mobilen Anwendungen (iOS und Android)
- DataSnap-Anwendungen entwickeln
- Grundlagen der mehrschichtigen Datenbank-Anwendungen
- Datasnap.DSServer.TDSServer
- Start the InterBase Server