Einführung in Fett + dcom
Ein Schritt für Schritt Spaziergang durch Geschäftslogik auf einen anderen Server mit Fett + DCOM mit einer Interbase-Datenbank zu trennen.
Dieser Artikel wurde aus einem Internetchat (IRC) mit Eric Holton-Protokollen zusammengestellt. Ich möchte Danke, dass Eric verbringen so viel Zeit, die detailliert die Schritte angeht. Eric hat sich bereit mich die Protokollen unseres Gesprächs in diesem Artikel zum Wohle anderer umwandeln lassen.
Der server
- Erstellen Sie eine neue Anwendung mit einem Formular und ein Datamodule.
- Nennen Sie das Modul DmServer und das Hauptformular FmServerMain.
- Speichern Sie das Formular als ServerMainForm.pas, das Modul als ServerModule.pas und das Projekt als ServerApp.DPR
- Fügen Sie aus der Registerkarte [Fett behandelt] ein TBoldModel (MbModel), TBoldSystemTypeInfoHandle (IhModelInfo), TBoldSystemHandle (ShMainHandle) und eine TBoldPersistenceHandleIB (PhInterbase).
- Im Objekt legen Inspektor Sie die folgenden Eigenschaften:
phInterbase
DatabaseName = eine vorhandene GDB-Datei ersetzt werden.
BoldModel = BmModel
DatabaseEngine = dbeInterbaseSQLDialect3
shMainHandle
SystemTypeInfoHandle = IhModelInfo
PersistenceHandle = PhInterbase
IsDefault = True
AutoActivate = True
ihModelInfo
BoldModel = BmModel
- Umfassen Sie in der OnDestroy des Datamodule den folgenden code
Wenn Assigned(shMainHandle.System) dann
mit shMainHandle.System-do
Wenn BoldDirty dann verwerfen;
- Doppelklicken Sie auf das Modell, um die Modelleditor aufzurufen, und gehen Sie folgendermaßen vor:
- Ändern Sie 'Name' und 'Gerätename' vom BusinessClasses zum DCOMTestClasses
- Ändern Sie 'Modell Stammklasse' von BusinessClassesRoot zu DCOMTestClassesRoot
- Fügen Sie eine neue Klasse namens Person mit einem einzelnen Attribut 'FirstName'
- Im Menü Extras-Datenbank generieren
- Im Menü Extras Generate Code - speichern die resultierenden Dateien mit ihren Standardnamen
- Im Menü Extras COM/IDL-GUIDs generieren (sagen wir ja 'halten zu GUIDs vorhanden?')
- Im Menü Extras generieren Delphi kompatibel IDL - speichern Sie die Ergebnisse mit ihren Standardnamen
- Speichern Sie das Modell zu, und schließen Sie den Modelleditor
- Datei im Menü neu, [ActiveX-] Registerkarte 'Type Library', und gehen Sie folgendermaßen vor:
- Klicken Sie auf der Registerkarte [Verwendung]
- Mit der rechten Maustaste, und wählen Sie 'Zeige alle Typbibliotheken'
- Tick 'Fett ObjectSpace Type Library'
- Mit der rechten Maustaste und wählen Sie 'ausgewählte'
- Öffnen Sie die Datei DCOMTesterClasses.IDL
- Wählen Sie den Text und kopieren Sie sie in die Zwischenablage
- Klicken Sie auf den TLB-Editor [Text]
- Ersetzen von Text mit dem Text in die Zwischenablage
- Klicken Sie auf 'Refresh Umsetzung'
- STRG + S und speichern Sie die TLB als den Standardnamen (ProjectName.TLB)
- Registerkarte [Fett COM] löschen Sie die folgenden Komponenten auf das Servermodul TBoldCOMServerHandle (CshServerHandle) und eine TBoldComServerElementHandle (CseElementHandle), und legen Sie die folgenden Eigenschaften:
cseElementHandle
BoldHandle = ShMainHandle
ServerHandle = CshServerHandle
- Doppelklicken Sie auf CshServerHandle und generieren Sie Code, speichern Sie diese Datei als DCOMTestServerCode.pas
- Kopieren Sie die GUID in die Zwischenablage aus DCOMTestServerCode
- Speichern Sie und führen Sie die Anwendung, alle sollten gut sein.
Der Client
- Registrieren Sie den Server-TLB-Datei mithilfe von RegSvr32 oder TRegSvr (Borland\delphi\bin Ordner).
- Erstellen Sie eine neue Anwendung mit einem Formular und ein Datamodule (Form sollte 'verwenden' das Modul).
- Name der Modul-DmClient und das Hauptformular FmClientMain.
- Speichern Sie das Formular als ClientMainForm.pas, das Modul als ClientModule.pas und das Projekt als ClientApp.DPR
- Fügen Sie der Registerkarte [Fett COM] ein TBoldCOMConnectionHandle (ChCOMConnection) und eine TBoldSystemHandleCom (ShMainHandle) legen Sie die folgenden Eigenschaften
chCOMConnection
ServerCLSID = die GUID von DCOMTestServerCode.pas (The ServerName Eigenschaft sollten automatisch ändern)
AutoConnect = True
shMainHandle
ConnectionHandle = ChCOMConnection
IsDefault = TRUE
Objektname = (identisch mit Objektname des CseElementHandle auf dem Server)
- Von der Registerkarte [Fett COM behandelt] ein TBoldListHandleCom (BlhPerson) auf dem Hauptformular festlegen
ConnectionHandle = dmClient.chCOMConnection
Ausdruck = 'Person.allInstances'
RootHandle = dmClient.shMainHandle
- Von der Registerkarte [Fett COM-Steuerelemente] löschen Sie, ein TBoldGridCom und ein TBoldNavigatorCom auf dem Hauptformular, und legen Sie die BoldHandle-Eigenschaft von beiden zu BlhPerson.
- Mit der rechten Maustaste BoldGridCOM1, und wählen Sie 'Spalten bearbeiten' Festlegen der Expression-Eigenschaft der zweiten Spalte, 'FirstName'.
- Fügen Sie eine Schaltfläche zum Formular, mit dem folgenden Code angefügt
dmClient.shMainHandle.System.UpdateDatabase;
Die Anwendung sollte jetzt funktionieren.
Einführung in Fett + dcom
Einführung in Fett + dcom : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Ein Schritt für Schritt Spaziergang durch Geschäftslogik auf einen anderen Server mit Fett + DCOM mit einer Interbase-Datenbank zu trennen.
Dieser Artikel wurde aus einem Internetchat (IRC) mit Eric Holton-Protokollen zusammengestellt. Ich möchte Danke, dass Eric verbringen so viel Zeit, die detailliert die Schritte angeht. Eric hat sich bereit mich die Protokollen unseres Gesprächs in diesem Artikel zum Wohle anderer umwandeln lassen.
Der server
- Erstellen Sie eine neue Anwendung mit einem Formular und ein Datamodule.
- Nennen Sie das Modul DmServer und das Hauptformular FmServerMain.
- Speichern Sie das Formular als ServerMainForm.pas, das Modul als ServerModule.pas und das Projekt als ServerApp.DPR
- Fügen Sie aus der Registerkarte [Fett behandelt] ein TBoldModel (MbModel), TBoldSystemTypeInfoHandle (IhModelInfo), TBoldSystemHandle (ShMainHandle) und eine TBoldPersistenceHandleIB (PhInterbase).
- Im Objekt legen Inspektor Sie die folgenden Eigenschaften:
phInterbase
DatabaseName = eine vorhandene GDB-Datei ersetzt werden.
BoldModel = BmModel
DatabaseEngine = dbeInterbaseSQLDialect3
shMainHandle
SystemTypeInfoHandle = IhModelInfo
PersistenceHandle = PhInterbase
IsDefault = True
AutoActivate = True
ihModelInfo
BoldModel = BmModel
- Umfassen Sie in der OnDestroy des Datamodule den folgenden code
Wenn Assigned(shMainHandle.System) dann
mit shMainHandle.System-do
Wenn BoldDirty dann verwerfen;
- Doppelklicken Sie auf das Modell, um die Modelleditor aufzurufen, und gehen Sie folgendermaßen vor:
- Ändern Sie 'Name' und 'Gerätename' vom BusinessClasses zum DCOMTestClasses
- Ändern Sie 'Modell Stammklasse' von BusinessClassesRoot zu DCOMTestClassesRoot
- Fügen Sie eine neue Klasse namens Person mit einem einzelnen Attribut 'FirstName'
- Im Menü Extras-Datenbank generieren
- Im Menü Extras Generate Code - speichern die resultierenden Dateien mit ihren Standardnamen
- Im Menü Extras COM/IDL-GUIDs generieren (sagen wir ja 'halten zu GUIDs vorhanden?')
- Im Menü Extras generieren Delphi kompatibel IDL - speichern Sie die Ergebnisse mit ihren Standardnamen
- Speichern Sie das Modell zu, und schließen Sie den Modelleditor
- Datei im Menü neu, [ActiveX-] Registerkarte 'Type Library', und gehen Sie folgendermaßen vor:
- Klicken Sie auf der Registerkarte [Verwendung]
- Mit der rechten Maustaste, und wählen Sie 'Zeige alle Typbibliotheken'
- Tick 'Fett ObjectSpace Type Library'
- Mit der rechten Maustaste und wählen Sie 'ausgewählte'
- Öffnen Sie die Datei DCOMTesterClasses.IDL
- Wählen Sie den Text und kopieren Sie sie in die Zwischenablage
- Klicken Sie auf den TLB-Editor [Text]
- Ersetzen von Text mit dem Text in die Zwischenablage
- Klicken Sie auf 'Refresh Umsetzung'
- STRG + S und speichern Sie die TLB als den Standardnamen (ProjectName.TLB)
- Registerkarte [Fett COM] löschen Sie die folgenden Komponenten auf das Servermodul TBoldCOMServerHandle (CshServerHandle) und eine TBoldComServerElementHandle (CseElementHandle), und legen Sie die folgenden Eigenschaften:
cseElementHandle
BoldHandle = ShMainHandle
ServerHandle = CshServerHandle
- Doppelklicken Sie auf CshServerHandle und generieren Sie Code, speichern Sie diese Datei als DCOMTestServerCode.pas
- Kopieren Sie die GUID in die Zwischenablage aus DCOMTestServerCode
- Speichern Sie und führen Sie die Anwendung, alle sollten gut sein.
Der Client
- Registrieren Sie den Server-TLB-Datei mithilfe von RegSvr32 oder TRegSvr (Borland\delphi\bin Ordner).
- Erstellen Sie eine neue Anwendung mit einem Formular und ein Datamodule (Form sollte 'verwenden' das Modul).
- Name der Modul-DmClient und das Hauptformular FmClientMain.
- Speichern Sie das Formular als ClientMainForm.pas, das Modul als ClientModule.pas und das Projekt als ClientApp.DPR
- Fügen Sie der Registerkarte [Fett COM] ein TBoldCOMConnectionHandle (ChCOMConnection) und eine TBoldSystemHandleCom (ShMainHandle) legen Sie die folgenden Eigenschaften
chCOMConnection
ServerCLSID = die GUID von DCOMTestServerCode.pas (The ServerName Eigenschaft sollten automatisch ändern)
AutoConnect = True
shMainHandle
ConnectionHandle = ChCOMConnection
IsDefault = TRUE
Objektname = (identisch mit Objektname des CseElementHandle auf dem Server)
- Von der Registerkarte [Fett COM behandelt] ein TBoldListHandleCom (BlhPerson) auf dem Hauptformular festlegen
ConnectionHandle = dmClient.chCOMConnection
Ausdruck = 'Person.allInstances'
RootHandle = dmClient.shMainHandle
- Von der Registerkarte [Fett COM-Steuerelemente] löschen Sie, ein TBoldGridCom und ein TBoldNavigatorCom auf dem Hauptformular, und legen Sie die BoldHandle-Eigenschaft von beiden zu BlhPerson.
- Mit der rechten Maustaste BoldGridCOM1, und wählen Sie 'Spalten bearbeiten' Festlegen der Expression-Eigenschaft der zweiten Spalte, 'FirstName'.
- Fügen Sie eine Schaltfläche zum Formular, mit dem folgenden Code angefügt
dmClient.shMainHandle.System.UpdateDatabase;
Die Anwendung sollte jetzt funktionieren.
Einführung in Fett + dcom
By Wiezutun
Einführung in Fett + dcom : Mehreren tausend Tipps, um Ihr Leben einfacher machen.