Freigeben über


RDS-Programmiermodell im Detail

Die wichtigsten Elemente des RDS-Programmiermodells sind:

  • RDS.DataSpace

  • RDSServer.DataFactory

  • RDS.DataControl

  • Ereignis

Wichtig

Ab Windows 8 und Windows Server 2012 sind RDS-Serverkomponenten nicht mehr im Windows-Betriebssystem enthalten (weitere Informationen finden Sie in den jeweiligen Kompatibilitäts-Cookbooks zu Windows 8 und Windows Server 2012). RDS-Clientkomponenten werden in einer zukünftigen Version von Windows entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Anwendungen, die RDS verwenden, sollten zu WCF Data Service migriert werden.

RDS.DataSpace

Die Clientanwendung muss den Server und das aufzurufende Serverprogramm angeben. Im Gegenzug erhält die Anwendung einen Verweis auf das Serverprogramm. Dieser kann so verwendet wie das Serverprogramm selbst.

Das RDS-Objektmodell stellt diese Funktionalität mit dem RDS.DataSpace-Objekt dar.

Das Serverprogramm wird mit einem Programmbezeichner (ProgID) angegeben. Der Server verwendet die ProgID und die Registrierung des Servercomputers, um Informationen zum tatsächlichen Programm zu ermitteln, das initiiert werden soll.

RDS unterscheidet intern, ob sich das Serverprogramm auf einem Remoteserver im Internet oder in einem Intranet, auf einem Server in einem lokalen Netzwerk oder gar nicht auf einem Server befindet, sondern in einer lokalen Dynamic Link Library (DLL). Diese Unterscheidung bestimmt, wie Informationen zwischen dem Client und dem Server ausgetauscht werden, und hat entscheidenden Einfluss auf die Art des Verweises, der an die Clientanwendung zurückgegeben wird. Aus Ihrer Sicht hat diese Unterscheidung jedoch keine besondere Bedeutung. Wichtig ist lediglich, dass Sie eine brauchbare Programmreferenz erhalten.

RDSServer.DataFactory

RDS stellt ein Standardserverprogramm bereit, das eine SQL-Abfrage an die Datenquelle ausführen und ein Recordset-Objekt zurückgeben oder ein Recordset-Objekt übernehmen und die Datenquelle aktualisieren kann.

Das RDS-Objektmodell stellt diese Funktionalität mit dem RDSServer.DataFactory-Objekt dar.

Darüber hinaus verfügt dieses Objekt über eine Methode zum Erstellen eines leeren Recordset-Objekts, das Sie programmgesteuert füllen können (CreateRecordset), sowie über eine andere Methode zum Umwandeln eines Recordset-Objekts in eine Textzeichenfolge für die Erstellung einer Webseite (ConvertToString).

Mit ADO können Sie einige Standardverhalten für Verbindungen und Befehle von RDSServer.DataFactory mit einem DataFactory-Handler und einer Anpassungsdatei außer Kraft setzen, die Verbindungs-, Befehls- und Sicherheitsparameter enthält.

Das Serverprogramm wird manchmal als Geschäftsobjekt bezeichnet. Sie können Ihr eigenes benutzerdefiniertes Geschäftsobjekt schreiben, das komplizierte Datenzugriffe, Gültigkeitsprüfungen usw. ausführen kann. Sogar beim Schreiben eines benutzerdefinierten Geschäftsobjekts können Sie eine Instanz eines RDSServer.DataFactory-Objekts erstellen und einige seiner Methoden verwenden, um eigene Aufgaben zu erledigen.

RDS.DataControl

RDS bietet eine Möglichkeit, die Funktionalität von RDS.DataSpace und RDSServer.DataFactory zu kombinieren sowie visuelle Steuerelemente zu aktivieren, um die einfache Verwendung des Recordset-Objekts zu ermöglichen, das von der Abfrage einer Datenquelle zurückgegeben wird. RDS versucht in der Regel, möglichst viel automatisch zu erledigen, um Zugriff auf Informationen auf einem Server zu erhalten und diese in einem visuellen Steuerelement anzuzeigen.

Das RDS-Objektmodell stellt diese Funktionalität mit dem RDS.DataControl-Objekt dar.

RDS.DataControl umfasst zwei Aspekte. Ein Aspekt bezieht sich auf die Datenquelle. Wenn Sie die Befehls- und Verbindungsinformationen mit den Connect- und SQL-Eigenschaften von RDS.DataControl festlegen, wird automatisch RDS.DataSpace zum Erstellen eines Verweises auf das RDSServer.DataFactory-Standardobjekt verwendet. RDSServer.DataFactory verwendet anschließend den Wert der Connect-Eigenschaft, um eine Verbindung zur Datenquelle herzustellen, sowie den Wert der SQL-Eigenschaft, um ein Recordset aus der Datenquelle abzurufen, und gibt das Recordset-Objekt an RDS.DataControl zurück.

Der zweite Aspekt bezieht sich auf die Anzeige der zurückgegebenen Recordset-Informationen in einem visuellen Steuerelement. Sie können ein visuelles Steuerelement mit RDS.DataControl verknüpfen (in einem sogenannten Bindungsprozess), auf die Informationen im verknüpften Recordset-Objekt zugreifen und Abfrageergebnisse in Microsoft Internet Explorer auf einer Webseite anzeigen. Jedes RDS.DataControl-Objekt bindet ein Recordset-Objekt, das die Ergebnisse einer einzelnen Abfrage darstellt, an mindestens ein visuelles Steuerelement (z. B. ein Textfeld, ein Kombinationsfeld, ein Rastersteuerelement usw.). Auf einer Seite können mehrere RDS.DataControl-Objekte vorhanden sein. Jedes RDS.DataControl-Objekt kann mit einer anderen Datenquelle verbunden sein und die Ergebnisse einer separaten Abfrage enthalten.

Das RDS.DataControl-Objekt verfügt auch über eigene Methoden für Navigation, Sortierung und Filterung der Zeilen des verknüpften Recordset-Objekts. Diese Methoden weisen Ähnlichkeit mit den Methoden des Recordset-Objekts von ADO auf, sind aber nicht identisch.

Ereignisse

RDS unterstützt zwei eigene Ereignisse, die unabhängig vom ADO-Ereignismodell sind. Das onReadyStateChange-Ereignis wird immer dann aufgerufen, wenn die ReadyState-Eigenschaft von RDS.DataControl geändert wird, sodass Sie benachrichtigt werden, wenn ein asynchroner Vorgang erfolgreich abgeschlossen bzw. beendet wurde oder ein Fehler aufgetreten ist. Das onError-Ereignis wird aufgerufen, wenn ein Fehler auftritt – auch wenn der Fehler während eines asynchronen Vorgangs auftritt.

Hinweis

Microsoft Internet Explorer stellt zwei weitere Ereignisse für RDS zur Verfügung: onDataSetChanged gibt an, dass das Recordset funktional ist, aber weiterhin Zeilen abruft, und onDataSetComplete gibt an, dass das Recordset das Abrufen von Zeilen abgeschlossen hat.

Weitere Informationen

RDS-Programmiermodell mit Objekten
DataControl-Objekt (RDS)
DataFactory-Objekt (RDSServer)
DataSpace-Objekt (RDS)
RDS-Szenario
RDS-Tutorial
Verwendung und Sicherheit von RDS