Nach oben zu Datei - Index
Mit dem Experten für externes Datenmodul erstellen Sie ein Datenmodul, das als Automatisierungsserver mit dualem Interface für externe Rechner zugänglich ist. Ein externes Datenmodul befindet sich in einer mehrschichtigen Datenbankumgebung im Anwendungsserver zwischen einem Client und einem Server.
| Element
|
Beschreibung
|
|
Name der CoClass
|
Geben Sie den Basisnamen für das Automatisierungs-Interface des externen Datenmoduls ein. Als Klassennamen für Ihr externes Datenmodul (ein Nachkomme von TRemoteDataModule) wird dieser Name mit einem vorangestellten T verwendet. Die Klasse implementiert ein Interface mit dem Namen der Basisklasse und einem vorangestellten I. Um Client-Anwendungen den Zugriff auf dieses Interface zu ermöglichen, weisen Sie der Eigenschaft ServerName der Verbindungskomponenten der Client-Anwendung den hier angegebenen Namen der Basisklasse zu.
|
|
Instantiierung
|
Wählen Sie aus diesem Kombinationsfeld den Aufrufmodus für Ihre externe Datenmodulanwendung aus. Die folgende Tabelle enthält die möglichen Werte:
| Wert
|
Bedeutung
|
|
Intern
|
Das externe Datenmodul wird in einem In-Process-Server erstellt. Wählen Sie diese Option, wenn ein externes Datenmodul als Teil einer aktiven Bibliothek (DLL) erstellt werden soll.
|
|
Eine Instanz
|
Für jede ausführbare Datei wird nur eine einzige Instanz des externen Datenmoduls erstellt. Jede Client-Verbindung ruft ihre eigene Instanz der ausführbaren Datei auf. Die Instanz des externen Datenmoduls ist deshalb ausschließlich einem einzelnen Client zugeordnet.
|
|
Mehrere Instanzen
|
Eine einzelne Instanz der Anwendung (Prozess) instantiiert alle externen Datenmodule, die für Clients erstellt wurden. Zwar wird jedes externe Datenmodul einer einzigen Client-Verbindung zugeordnet, aber alle Module nutzen denselben Prozessraum.
|
|
|
Threading-Modell
|
Wählen Sie aus diesem Kombinationsfeld aus, wie Client-Aufrufe an das Interface Ihres externen Datenmoduls übergeben werden sollen. Die folgende Tabelle enthält die möglichen Werte:
| Wert
|
Bedeutung
|
|
Einfach
|
Das Datenmodul empfängt zu einem gegebenen Zeitpunkt jeweils nur eine Client-Anforderung. Weil alle Client-Anforderungen von COM serialisiert werden, müssen Sie sich um Threading-Fragen nicht kümmern.
|
|
Apartment
|
Jede Instanz Ihres externen Datenmoduls erhält zu einem gegebenen Zeitpunkt nur jeweils eine Client-Anforderung. Die DLL kann jedoch mehrere Anwendungen in getrennten Threads bearbeiten, wenn sie mehrere COM-Objekte erstellt. Instanzdaten sind sicher, aber Sie müssen Thread-Konflikte im globalen Speicher berücksichtigen. Bei Verwendung von BDE-konformen Datenmengen sollte immer das Apartment-Modell eingesetzt werden. (Bitte beachten Sie, dass Sie bei der Verwendung von BDE-konformen Datenmengen eine Sitzungskomponente mit der Einstellung "AutoSessionName = True" hinzufügen müssen.)
|
|
Frei
|
Die Instanzen Ihres externen Datenmoduls können in verschiedenen Server-Threads gleichzeitig mehrere Client-Anforderungen empfangen. Sie müssen sowohl die Instanzdaten als auch den globalen Speicher vor Konflikten schützen. Bei Verwendung von ADO-Datenmengen sollte immer dieses Modell eingesetzt werden.
|
|
Beides
|
Entspricht dem Modell "Frei" außer dass alle Callback-Funktionen zu Interfaces serialisiert werden.
|
|
Neutral
|
Mehrer Clients können das externe Datenmodul gleichzeitig in verschiedenen Threads aufrufen, aber COM stellt sicher, dass die Aufrufe nicht miteinander in Konflikt geraten. Sie müssen globale Daten und Instanzdaten, auf die mehrere Interface-Methoden zugreifen, vor Thread-Konflikten schützen. Das Modell steht nur unter COM+ zur Verfügung. In anderen Umgebungen wird für diese Option das Apartment-Modell eingesetzt.
|
|
|
Beschreibung
|
Geben Sie den Text ein, der in der Registrierung neben der ProgID für das Anwendungsserver-Interface erscheint. Der Beschreibungstext kann auch als Hilfetext für das Interface in der Typbibliothek dienen.
|
|
Ereignisunterstützung generieren
|
Mithilfe dieser Option kann ein eigenes Interface für die Verwaltung der Ereignisse implementiert werden.
|
Siehe auch