Einen Provider festlegen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Eine Client-Datenmenge mit einem Provider verwenden


Anders als die Client-Datenmengen, die einem Datenzugriffsmechanismus zugeordnet sind, besitzt TClientDataSet keine interne Provider-Komponente, um Daten zu verpacken oder Aktualisierungen anzuwenden. Wenn Sie Daten aus einer Quelldatenmenge oder einem XML-Dokument darstellen möchten, müssen Sie deshalb der Client-Datenmenge eine externe Provider-Komponente zuordnen.

Wie Sie TClientDataSet einen Provider zuordnen, ist davon abhängig, ob sich der Provider innerhalb derselben Anwendung befindet wie die Client-Datenmenge, oder auf einem externen Anwendungsserver, der auf einem anderen System ausgeführt wird.



Position des Provider Wie TClientDataSet zugeordnet wird

Der Provider befindet sich innerhalb derselben Anwendung wie die Client-Datenmenge

Befindet sich der Provider innerhalb derselben Anwendung wie die Client-Datenmenge, können Sie dieser einen Provider zuordnen, indem Sie ihn im Objektinspektor aus der Dropdown-Liste für die Eigenschaft ProviderName auswählen. Das funktioniert, solange der Provider denselben Owner wie die Client-Datenmenge hat. (Die Client-Datenmenge und der Provider haben denselben Owner, wenn sie im selben Formular oder Datenmodul existieren.) Um einen lokalen Provider zu verwenden, der einen anderen Owner hat, müssen Sie die Zuordnung zur Laufzeit mithilfe der Methode SetProvider der Client-Datenmenge einrichten.

Falls Sie annehmen, dass Sie irgendwann einen externen Provider brauchen, oder wenn Sie direkte Aufrufe der Schnittstelle IAppServer vornehmen wollen, können Sie die Eigenschaft ConnectionBroker auch auf eine Datasnap.Win.TConnect.TLocalConnection-Komponente setzen. In diesem Fall verwaltet die TLocalConnection-Instanz die Liste aller Provider, die lokal für die Anwendung sind, und verarbeitet die IAppServer-Aufrufe der Client-Datenmenge. Falls Sie nicht TLocalConnection verwenden, erzeugt die Anwendung ein verborgenes Objekt, das die IAppServer-Aufrufe der Client-Datenmenge verarbeitet.

Der Provider befindet sich auf einem externen Anwendungsserver

Befindet sich der Provider auf einem externen Anwendungsserver, müssen Sie neben der Eigenschaft ProviderName eine Komponente angeben, welche die Client-Datenmenge mit dem Anwendungsserver verbindet. Es gibt zwei Eigenschaften, welche dies übernehmen können: RemoteServer, die den Namen einer Verbindungskomponente angibt, von der eine Liste mit Providern abgerufen werden kann, oder die Eigenschaft ConnectionBroker, die einen zentralen Vermittler angibt, der eine zusätzliche Ebene zwischen der Client-Datenmenge und der Verbindungskomponente darstellt. Die Verbindungskomponente richtet eine Verbindung zu einem Anwendungsserver ein, der manchmal auch als "Datenbroker" bezeichnet wird, und verwaltet diese. Weitere Informationen finden Sie unter Die Struktur der Client-Anwendung.

Nachdem Sie zur Entwurfszeit RemoteServer oder ConnectionBroker angegeben haben, können Sie im Objektinspektor einen Provider aus der Dropdown-Liste für die Eigenschaft ProviderName auswählen. Diese Liste enthält sowohl lokale Provider (im selben Formular oder Datenmodul) als auch externe Provider, auf die mittels der Verbindungskomponente zugegriffen wird.



Anmerkung:  Falls es sich bei der Verbindungskomponente um eine Instanz von TDCOMConnection handelt, muss der Anwendungsserver auf der Client-Maschine registriert werden.

Zur Laufzeit wechseln Sie zwischen den verfügbaren Providern (sowohl lokalen als auch externen), indem Sie den ProviderName im Quellcode entsprechend ändern.

Siehe auch