En trinn-for-trinn gå gjennom for å skille forretningslogikk til en annen server ved hjelp av BOLD + DCOM med Interbase database artikkelen ble samlet fra loggene på en internett chat (IRC) med Eric Holton. Jeg vil gjerne takke Eric for å tilbringe så mye tid detaljering trinnene envolved. Eric har blitt enige om å la meg konvertere logger av vår samtale i denne artikkelen til fordel for andre. Serveren
Opprett en ny søknad med en form og en datamodule.
navn modulen dmServer, og den viktigste formen fmServerMain.
Lagre skjemaet som ServerMainForm.pas, modulen som ServerModule.pas, og prosjektet som ServerApp.DPR
Fra [Fet Handles] -kategorien legge en TBoldModel (mbModel), TBoldSystemTypeInfoHandle (ihModelInfo), TBoldSystemHandle (shMainHandle), og en TBoldPersistenceHandleIB (phInterbase).
I objektet inspektør angi følgende egenskaper: phInterbase DatabaseName = en eksisterende GDB fil som skal erstattes. BoldModel = bmModel DatabaseEngine = dbeInterbaseSQLDialect3 shMainHandle SystemTypeInfoHandle = ihModelInfo PersistenceHandle = phInterbase IsDefault = True AutoActivate = True ihModelInfo BoldModel = bmModel
I OnDestroy av datamodule inkluderer følgende kode hvis Assigned (shMainHandle.System) deretter med shMainHandle.System gjøre hvis BoldDirty da Forkast;
Dobbeltklikk på modellen for å få opp modellen editor, og gjør følgende:
Change "Name" og "Unit name" fra BusinessClasses til DCOMTestClasses
Change "Model root class" fra BusinessClassesRoot til DCOMTestClassesRoot
Legg til en ny klasse kalt Person med et enkelt attributt "fornavn"
Verktøy-menyen, generere database
Verktøy-menyen, generere kode - lagre den resulterende filene med deres standardnavnene
Verktøy-menyen, generere COM /IDL GUID (si JA til "Keep eksisterende GUID?")
< li> Verktøy-menyen, generere Delphi kompatibel IDL - lagre resultatene filer med standard navnene
Lagre modellen, og lukk deretter modellen redaktøren
Fil-menyen, New, [ActiveX] fanen, "Type bibliotek", og gjør følgende:
Klikk på [Bruker] -kategorien
Høyreklikk og velg "Vis alle type Libraries"
Kryss "Bold ObjectSpace Type Library"
Høyreklikk og velg "Vis valgte"
Åpne filen DCOMTesterClasses.IDL
Velg all teksten og kopiere den til utklippstavlen
< .no>
Klikk på [Tekst] -kategorien på TLB redaktør
Erstatt all teksten med teksten i utklippstavlen
Klikk "Refresh implementering"
CTRL + S og lagre TLB som navnet standard (ProjectName.TLB)
Fra [Fet COM] -kategorien slippe følgende komponenter på serveren modulen TBoldCOMServerHandle (cshServerHandle) og en TBoldComServerElementHandle (cseElementHandle) og angi følgende egenskaper: cseElementHandle BoldHandle = shMainHandle ServerHandle = cshServerHandle
Dobbeltklikk cshServerHandle og generere kode, lagre denne filen som DCOMTestServerCode.pas
Kopier GUID fra DCOMTestServerCode til utklippstavlen
Lagre og kjøre programmet, bør alle være godt.
The Client
Sett inn serverens TLB-fil ved hjelp RegSvr32 eller TRegSvr (Borland \\ delphi \\ bin mappe).
Opprett en ny søknad med en form og en datamodule (form bør "Bruk" modulen).
navn modulen dmClient, og den viktigste formen fmClientMain.
Lagre skjemaet som ClientMainForm.pas, modulen som ClientModule.pas, og prosjektet som ClientApp.DPR
Fra [Fet COM] -kategorien legge en TBoldCOMConnectionHandle (chCOMConnection), og en TBoldSystemHandleCom (shMainHandle) satt følgende egenskaper chCOMConnection ServerCLSID = GUID fra DCOMTestServerCode.pas (The Server eiendommen skal endre automatisk) Autoconnect = True shMainHandle ConnectionHandle = chCOMConnection IsDefault = TRUE Object = (Samme som Object av cseElementHandle i serveren)
Fra [Fet COM Handles] -kategorien slippe en TBoldListHandleCom (blhPerson) på din viktigste formen, sett ConnectionHandle = dmClient.chCOMConnection Expression = 'Person.allInstances' RootHandle = dmClient.shMainHandle
Fra [Fet COM Controls] -kategorien slippe en TBoldGridCom og en TBoldNavigatorCom på din viktigste formen og sett BoldHandle eiendom både til blhPerson.
Høyreklikk BoldGridCOM1 og velg "Edit kolonner" sett Expression tilhører den andre kolonnen til "fornavn".
Legg til en knapp i skjemaet med følgende kode vedlagte dmClient.shMainHandle.System.UpdateDatabase;
Søknaden skal nå fungere
.
Introduksjon til Fet + DCOM
Previous:Validere datofelt i OCL
Next Page:Starte standard editor for en object