Introduksjon til Fet + DCOM

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
          .