Introduction en gras dcom
Une étape-par-étape de marche par le biais de la séparation de la logique métier à un autre serveur à l'aide de caractères GRAS DCOM avec une base de données Interbase.
Cet article a été compilée à partir des journaux de l'internet, un chat (IRC) avec Eric Holton. Je tiens à remercier Eric pour passer autant de temps en détaillant les mesures saisons. Eric a accepté de me laisser convertir les journaux de notre conversation dans cet article pour le bénéfice des autres.
Le serveur
- Créer une nouvelle application avec une forme et un datamodule.
- Nom du module dmServer, et la principale forme fmServerMain.
- Enregistrez le formulaire en tant que ServerMainForm.pas, le module ServerModule.pas, et le projet en tant que ServerApp.RMR
- [Gras Poignées] de l'onglet ajouter un TBoldModel (mbModel), TBoldSystemTypeInfoHandle (ihModelInfo), TBoldSystemHandle (shMainHandle), et un TBoldPersistenceHandleIB (phInterbase).
- Dans l'inspecteur d'objet, définissez les propriétés suivantes:
& nbsp & nbsp
& nbsp & nbsp phInterbase
& ! & ! & ! & nbsp DatabaseName = existante GDB fichier à remplacer.
& ! & ! & ! & nbsp BoldModel = bmModel
& ! & ! & ! & nbsp DatabaseEngine = dbeInterbaseSQLDialect3
& nbsp & nbsp shMainHandle
& ! & ! & ! & nbsp SystemTypeInfoHandle = ihModelInfo
& ! & ! & ! & nbsp PersistenceHandle = phInterbase
& ! & ! & ! & nbsp IsDefault = True
& ! & ! & ! & nbsp AutoActivate = True
& nbsp & nbsp ihModelInfo
& ! & ! & ! & nbsp BoldModel = bmModel
& nbsp & nbsp
& nbsp & nbsp
- Dans le OnDestroy de la datamodule inclure le code suivant
& nbsp & nbsp
& nbsp & nbsp si Affecté(shMainHandle.Système),
& ! & ! & ! & nbsp avec shMainHandle.Le système ne
& ! & ! & ! & ! & ! & nbsp si BoldDirty puis Défaussez-vous d'
& nbsp & nbsp
- Double-cliquez sur le modèle pour afficher l'éditeur de modèle, et de faire ce qui suit:
- Changer le 'Nom' et 'nom de l'Unité' de l'BusinessClasses à DCOMTestClasses
- Changer le 'Modèle de classe racine' de l'BusinessClassesRoot à DCOMTestClassesRoot
- Ajouter une nouvelle classe appelée Personne avec un seul attribut 'prenom'
- menu Outils, de Générer la base de données
- menu Outils, Générer le code - enregistrer le résultat dans des fichiers avec leurs noms par défaut
- menu Outils, de Générer COM/IDL Guid (dites OUI à 'Maintenir les Guid?')
- menu Outils, de Générer Delphi compatible IDL - enregistrer les résultats des fichiers avec leurs noms par défaut
- Enregistrez le modèle, et puis fermez l'éditeur de modèle
& ! & ! & ! & nbsp
- menu Fichier, Nouveau, [ActiveX] de l'onglet, 'bibliothèque de Type' et procédez de la manière suivante:
- Cliquez sur le bouton [Utilise] onglet
- cliquez-Droit et sélectionnez 'Afficher Toutes les Bibliothèques de Type'
- Cochez 'Bold ObjectSpace Bibliothèque de Type'
- cliquez-Droit et sélectionnez 'Afficher la sélection'
- Ouvrez le fichier DCOMTesterClasses.IDL
- Sélectionnez tout le texte et le copier dans le presse-papiers
- Cliquez sur le [Texte] onglet sur le TLB éditeur
- Remplacer tout le texte avec le texte dans le presse-papiers
- Cliquez sur 'Actualiser la mise en œuvre'
- CTRL S et enregistrer le TLB comme le nom par défaut (ProjectName.TLB)
& ! & ! & ! & nbsp
& nbsp & nbsp
- [Gras COM] onglet déposez les composants suivants sur le module serveur TBoldCOMServerHandle (cshServerHandle) et un TBoldComServerElementHandle (cseElementHandle) et définissez les propriétés suivantes:
& nbsp & nbsp
& nbsp & nbsp cseElementHandle
& ! & ! & ! & nbsp BoldHandle = shMainHandle
& ! & ! & ! & nbsp propriété serverhandle n' = cshServerHandle
& nbsp & nbsp
- Double-cliquez sur cshServerHandle et de générer du code, enregistrez ce fichier en tant que DCOMTestServerCode.pas
- Copiez le GUID de DCOMTestServerCode dans le presse-papiers
- Enregistrez et exécutez l'application, tout doit être bien.
Le Client
- Inscrire le serveur de fichier TLB à l'aide de RegSvr32 ou TRegSvr (borland\delphi\bin).
- Créer une nouvelle application avec une forme et un datamodule (le formulaire doit 'Utiliser' le module).
- Nom du module dmClient, et la principale forme fmClientMain.
- Enregistrez le formulaire en tant que ClientMainForm.pas, le module ClientModule.pas, et le projet en tant que ClientApp.RMR
- [Gras COM] onglet ajouter un TBoldCOMConnectionHandle (chCOMConnection), et un TBoldSystemHandleCom (shMainHandle) définissez les propriétés suivantes
& nbsp & nbsp
& nbsp & nbsp chCOMConnection
& ! & ! & ! & nbsp ServerCLSID = le GUID de DCOMTestServerCode.pas (La propriété ServerName devrait modifier automatiquement)
& ! & ! & ! & nbsp AutoConnect = True
& nbsp & nbsp shMainHandle
& ! & ! & ! & nbsp ConnectionHandle = chCOMConnection
& ! & ! & ! & nbsp IsDefault = TRUE
& ! & ! & ! & nbsp ObjectName = (Même que ObjectName de cseElementHandle dans le serveur)
& nbsp & nbsp
- [Gras COM Poignées] onglet déposer un TBoldListHandleCom (blhPerson) sur votre formulaire principal, set
& nbsp & nbsp
& nbsp & nbsp ConnectionHandle = dmClient.chCOMConnection
& nbsp & nbsp Expression = ' Personne.allInstances'
& nbsp & nbsp RootHandle = dmClient.shMainHandle
& nbsp & nbsp
- [Gras Contrôles COM] onglet déposer un TBoldGridCom et un TBoldNavigatorCom sur votre formulaire principal et de l'ensemble de la BoldHandle propriété de deux à blhPerson.
- cliquez-Droit sur BoldGridCOM1 et sélectionnez 'Modifier les colonnes' définir la propriété d'Expression de la deuxième colonne pour 'prénom'.
- Ajouter un bouton à votre formulaire avec le code suivant attachés
& nbsp & nbsp
& nbsp & nbsp dmClient.shMainHandle.Système.UpdateDatabase
& nbsp & nbsp
Votre demande devrait maintenant fonctionner.
& nbsp
Introduction en gras dcom
Introduction en gras dcom : Plusieurs milliers de conseils pour vous faciliter la vie.
Une etape-par-etape de marche par le biais de la separation de la logique metier a un autre serveur a l'aide de caracteres GRAS DCOM avec une base de donnees Interbase.
Cet article a ete compilee a partir des journaux de l'internet, un chat (IRC) avec Eric Holton. Je tiens a remercier Eric pour passer autant de temps en detaillant les mesures saisons. Eric a accepte de me laisser convertir les journaux de notre conversation dans cet article pour le benefice des autres.
Le serveur
- Creer une nouvelle application avec une forme et un datamodule.
- Nom du module dmServer, et la principale forme fmServerMain.
- Enregistrez le formulaire en tant que ServerMainForm.pas, le module ServerModule.pas, et le projet en tant que ServerApp.RMR
- [Gras Poignees] de l'onglet ajouter un TBoldModel (mbModel), TBoldSystemTypeInfoHandle (ihModelInfo), TBoldSystemHandle (shMainHandle), et un TBoldPersistenceHandleIB (phInterbase).
- Dans l'inspecteur d'objet, definissez les proprietes suivantes:
& nbsp & nbsp
& nbsp & nbsp phInterbase
& ! & ! & ! & nbsp DatabaseName = existante GDB fichier a remplacer.
& ! & ! & ! & nbsp BoldModel = bmModel
& ! & ! & ! & nbsp DatabaseEngine = dbeInterbaseSQLDialect3
& nbsp & nbsp shMainHandle
& ! & ! & ! & nbsp SystemTypeInfoHandle = ihModelInfo
& ! & ! & ! & nbsp PersistenceHandle = phInterbase
& ! & ! & ! & nbsp IsDefault = True
& ! & ! & ! & nbsp AutoActivate = True
& nbsp & nbsp ihModelInfo
& ! & ! & ! & nbsp BoldModel = bmModel
& nbsp & nbsp
& nbsp & nbsp
- Dans le OnDestroy de la datamodule inclure le code suivant
& nbsp & nbsp
& nbsp & nbsp si Affecte(shMainHandle.Systeme),
& ! & ! & ! & nbsp avec shMainHandle.Le systeme ne
& ! & ! & ! & ! & ! & nbsp si BoldDirty puis Defaussez-vous d'
& nbsp & nbsp
- Double-cliquez sur le modele pour afficher l'editeur de modele, et de faire ce qui suit:
- Changer le 'Nom' et 'nom de l'Unite' de l'BusinessClasses a DCOMTestClasses
- Changer le 'Modele de classe racine' de l'BusinessClassesRoot a DCOMTestClassesRoot
- Ajouter une nouvelle classe appelee Personne avec un seul attribut 'prenom'
- menu Outils, de Generer la base de donnees
- menu Outils, Generer le code - enregistrer le resultat dans des fichiers avec leurs noms par defaut
- menu Outils, de Generer COM/IDL Guid (dites OUI a 'Maintenir les Guid?')
- menu Outils, de Generer Delphi compatible IDL - enregistrer les resultats des fichiers avec leurs noms par defaut
- Enregistrez le modele, et puis fermez l'editeur de modele
& ! & ! & ! & nbsp
- menu Fichier, Nouveau, [ActiveX] de l'onglet, 'bibliotheque de Type' et procedez de la maniere suivante:
- Cliquez sur le bouton [Utilise] onglet
- cliquez-Droit et selectionnez 'Afficher Toutes les Bibliotheques de Type'
- Cochez 'Bold ObjectSpace Bibliotheque de Type'
- cliquez-Droit et selectionnez 'Afficher la selection'
- Ouvrez le fichier DCOMTesterClasses.IDL
- Selectionnez tout le texte et le copier dans le presse-papiers
- Cliquez sur le [Texte] onglet sur le TLB editeur
- Remplacer tout le texte avec le texte dans le presse-papiers
- Cliquez sur 'Actualiser la mise en œuvre'
- CTRL S et enregistrer le TLB comme le nom par defaut (ProjectName.TLB)
& ! & ! & ! & nbsp
& nbsp & nbsp
- [Gras COM] onglet deposez les composants suivants sur le module serveur TBoldCOMServerHandle (cshServerHandle) et un TBoldComServerElementHandle (cseElementHandle) et definissez les proprietes suivantes:
& nbsp & nbsp
& nbsp & nbsp cseElementHandle
& ! & ! & ! & nbsp BoldHandle = shMainHandle
& ! & ! & ! & nbsp propriete serverhandle n' = cshServerHandle
& nbsp & nbsp
- Double-cliquez sur cshServerHandle et de generer du code, enregistrez ce fichier en tant que DCOMTestServerCode.pas
- Copiez le GUID de DCOMTestServerCode dans le presse-papiers
- Enregistrez et executez l'application, tout doit etre bien.
Le Client
- Inscrire le serveur de fichier TLB a l'aide de RegSvr32 ou TRegSvr (borland\delphi\bin).
- Creer une nouvelle application avec une forme et un datamodule (le formulaire doit 'Utiliser' le module).
- Nom du module dmClient, et la principale forme fmClientMain.
- Enregistrez le formulaire en tant que ClientMainForm.pas, le module ClientModule.pas, et le projet en tant que ClientApp.RMR
- [Gras COM] onglet ajouter un TBoldCOMConnectionHandle (chCOMConnection), et un TBoldSystemHandleCom (shMainHandle) definissez les proprietes suivantes
& nbsp & nbsp
& nbsp & nbsp chCOMConnection
& ! & ! & ! & nbsp ServerCLSID = le GUID de DCOMTestServerCode.pas (La propriete ServerName devrait modifier automatiquement)
& ! & ! & ! & nbsp AutoConnect = True
& nbsp & nbsp shMainHandle
& ! & ! & ! & nbsp ConnectionHandle = chCOMConnection
& ! & ! & ! & nbsp IsDefault = TRUE
& ! & ! & ! & nbsp ObjectName = (Meme que ObjectName de cseElementHandle dans le serveur)
& nbsp & nbsp
- [Gras COM Poignees] onglet deposer un TBoldListHandleCom (blhPerson) sur votre formulaire principal, set
& nbsp & nbsp
& nbsp & nbsp ConnectionHandle = dmClient.chCOMConnection
& nbsp & nbsp Expression = ' Personne.allInstances'
& nbsp & nbsp RootHandle = dmClient.shMainHandle
& nbsp & nbsp
- [Gras Controles COM] onglet deposer un TBoldGridCom et un TBoldNavigatorCom sur votre formulaire principal et de l'ensemble de la BoldHandle propriete de deux a blhPerson.
- cliquez-Droit sur BoldGridCOM1 et selectionnez 'Modifier les colonnes' definir la propriete d'Expression de la deuxieme colonne pour 'prenom'.
- Ajouter un bouton a votre formulaire avec le code suivant attaches
& nbsp & nbsp
& nbsp & nbsp dmClient.shMainHandle.Systeme.UpdateDatabase
& nbsp & nbsp
Votre demande devrait maintenant fonctionner.
& nbsp
Introduction en gras dcom
By commentfaire
Introduction en gras dcom : Plusieurs milliers de conseils pour vous faciliter la vie.