RDS-Programmiermodell im Detail
Im Folgenden sind die wichtigsten Elemente des RDS-Programmiermodells aufgeführt:
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 Details finden Sie unter Windows 8 und Windows Server 2012 Compatibility Cookbook). RDS-Clientkomponenten werden in einer zukünftigen Version von Windows entfernt. Vermeiden Sie die Verwendung dieses Features in neuer Entwicklungsarbeit, und planen Sie, Anwendungen zu ändern, die derzeit dieses Feature verwenden. Anwendungen, die RDS verwenden, sollten zu WCF Data Servicemigrieren.
RDS. DataSpace
Ihre Clientanwendung muss den Server und das serverprogramm angeben, das aufgerufen werden soll. Im Gegenzug erhält Ihre Anwendung einen Verweis auf das Serverprogramm und kann den Verweis so behandeln, als wäre es das Serverprogramm selbst.
Das RDS-Objektmodell verkörpert diese Funktionalität mit dem RDS. DataSpace-Objekt.
Das Serverprogramm wird mit einem Programmbezeichner oder ProgID-angegeben. Der Server verwendet die ProgID- und die Registrierung des Servercomputers, um Informationen über das zu initiierende Programm zu finden.
RDS unterscheidet intern, je nachdem, ob sich das Serverprogramm auf einem Remoteserver im Internet oder in einem Intranet befindet; ein Server in einem lokalen Netzwerk; oder nicht auf einem Server, sondern in einer lokalen Dynamic Link Library (DLL). Diese Unterscheidung bestimmt, wie Informationen zwischen dem Client und dem Server ausgetauscht werden, und macht einen spürbaren Unterschied in der Art des Verweises, der an Ihre Clientanwendung zurückgegeben wird. Aus Ihrer Sicht hat diese Unterscheidung jedoch keine besondere Bedeutung. Alles, was wichtig ist, ist, dass Sie eine verwendbare Programmreferenz erhalten.
RDSServer.DataFactory
RDS stellt ein Standardserverprogramm bereit, das entweder eine SQL-Abfrage für die Datenquelle ausführen und ein Recordset-objekt zurückgeben oder ein Recordset-objekt-Objekt verwenden und die Datenquelle aktualisieren kann.
Das RDS-Objektmodell verkörpert diese Funktionalität mit dem RDSServer.DataFactory-Objekt.
Darüber hinaus verfügt dieses Objekt über eine Methode zum Erstellen eines leeren Recordset-objekts, das Sie programmgesteuert ausfüllen können (CreateRecordset), und eine andere Methode zum Konvertieren eines Recordset- -Objekts in eine Textzeichenfolge zum Erstellen einer Webseite (ConvertToString).
Mit ADO können Sie einige der Standardverbindungs- und Befehlsverhalten der 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äftsobjektbezeichnet. Sie können ein eigenes benutzerdefiniertes Geschäftsobjekt schreiben, das komplizierte Datenzugriffe, Gültigkeitsprüfungen usw. durchführen kann. Selbst beim Schreiben eines benutzerdefinierten Geschäftsobjekts können Sie eine Instanz eines RDSServer.DataFactory-Objekts erstellen und einige seiner Methoden verwenden, um Ihre eigenen Aufgaben auszuführen.
RDS. DataControl
RDS bietet eine Möglichkeit, die Funktionalität von RDS.DataSpace und RDSServer.DataFactoryzu kombinieren und ermöglicht es zudem, visuelle Steuerelemente einfach zu verwenden, um das Recordset-Objekt zu nutzen, das von einer Abfrage aus einer Datenquelle zurückgegeben wird. RDS versucht für den häufigsten Fall, so viel wie möglich zu tun, um automatisch Zugriff auf Informationen auf einem Server zu erhalten und es in einem visuellen Steuerelement anzuzeigen.
Das RDS-Objektmodell verkörpert diese Funktionalität mit dem RDS. DataControl-Objekt.
Das RDS.DataControl hat zwei Aspekte. Ein Aspekt bezieht sich auf die Datenquelle. Wenn Sie die Befehls- und Verbindungsinformationen mithilfe der Eigenschaften Connect und SQL des RDS.DataControlfestlegen, wird automatisch das RDS.DataSpace verwendet, um einen Verweis auf das Standardobjekt RDSServer.DataFactory zu erstellen. Anschließend verwendet die RDSServer.DataFactory den Wert der Connect-Eigenschaft, um eine Verbindung mit der Datenquelle herzustellen, den Wert der SQL--Eigenschaft, um ein Recordset aus der Datenquelle abzurufen, und gibt das Recordset-Objekt an das RDS.DataControlzurü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 dem RDS.DataControl verknüpfen (in einem als Binding bezeichneten Prozess) und erhalten Zugriff auf die Informationen des zugeordneten Recordset--Objekts, wobei die Abfrageergebnisse auf einer Webseite im Microsoft Internet Explorer angezeigt werden. Jedes RDS. DataControl -Objekt bindet ein Recordset -Objekt, das die Ergebnisse einer einzelnen Abfrage darstellt, an ein oder mehrere visuelle Steuerelemente (z. B. ein Textfeld, ein Kombinationsfeld, ein Rastersteuerelement usw.). Auf jeder Seite kann es mehr als ein RDS.DataControl-Objekt geben. Jedes RDS. DataControl-Objekt kann mit einer anderen Datenquelle verbunden werden und die Ergebnisse einer separaten Abfrage enthalten.
Das RDS. DataControl-Objekt verfügt auch über eigene Methoden zum Navigieren, Sortieren und Filtern der Zeilen des zugeordneten Recordset- Objekts. Diese Methoden sind ähnlich, aber nicht identisch mit den Methoden für das ADO-Recordset--Objekt.
Ereignisse
RDS unterstützt zwei eigene Ereignisse, die unabhängig vom ADO-Ereignismodell sind. Das onReadyStateChange--Ereignis wird immer aufgerufen, wenn sich die RDS.DataControlReadyState--Eigenschaft ändert. Es benachrichtigt Sie darüber, wenn ein asynchroner Vorgang erfolgreich abgeschlossen, beendet oder wenn ein Fehler aufgetreten ist. Das onError-Ereignis wird immer aufgerufen, wenn ein Fehler auftritt, auch wenn der Fehler während eines asynchronen Vorgangs auftritt.
Anmerkung
Microsoft Internet Explorer stellt RDS zwei zusätzliche Ereignisse bereit: onDataSetChanged, was angibt, dass das Recordset- funktionsfähig ist, aber weiterhin Zeilen abruft, und onDataSetComplete, was angibt, dass das Recordset das Abrufen von Zeilen abgeschlossen hat.
Siehe auch
RDS-Programmiermodell mit Objekten
DataControl-Objekt (RDS)
DataFactory-Objekt (RDSServer)
DataSpace-Objekt (RDS)
RDS-Szenario
RDS-Lernprogramm
RDS-Nutzung und Sicherheit