Введение в смелые модели dcom
шаг за шагом пройти через отделения бизнес-логики на другой сервер, используя смелые модели dcom с базой данных InterBase.
эта статья была скомпилирована из журналов интернет-чаты (IRC) с Эрик Холтон. Я хотел бы поблагодарить Эрика за тратить так много времени с подробным описанием профессиональней шагов. Эрик согласился позволить мне конвертировать логи нашего разговора в этой статье на благо других<.бр />
<у>серверу>
ир><р класса="step_content ">
- создайте новое приложение с форма и datamodule.
р><р класса="step_content ">
ир><р класса="step_content ">- если имя dmServer модуль, а главная форма fmServerMain.
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить форму как ServerMainForm.па, модуль как ServerModule.пас, и проект как ServerApp.ДНР
р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный ручки] вкладке добавить TBoldModel (mbModel), TBoldSystemTypeInfoHandle (ihModelInfo), TBoldSystemHandle (shMainHandle), и TBoldPersistenceHandleIB (phInterbase).
р><р класса="step_content ">
ир><р класса="step_content ">- в инспекторе объектов установите следующие свойства:
& евро & евро <я>
& евро & евро phInterbase
& евро & евро & евро & евро Имя_базы_данных = существующий gdb файл в замене.
& евро & евро & евро & евро BoldModel = bmModel
& евро & евро & евро & мочекаменная баз данных = dbeInterbaseSQLDialect3
& евро & евро shMainHandle
& евро & евро & евро & евро SystemTypeInfoHandle = ihModelInfo
& евро & евро & евро & евро PersistenceHandle = phInterbase
В в
& евро & евро & евро & евро атрибут isdefault = истина
& евро & евро & евро & евро Автоактивация = истина
& евро & евро ihModelInfo
& евро & евро & евро & евро BoldModel = bmModel
& евро & евро я>
& и nbsp & мочекаменная ![BoldDCOM01.gif]()
р><р класса="step_content ">
р><р класса="step_content ">- на OnDestroy из datamodule включите следующий код
& евро & евро <я>
& фитоэстрогены & фитоэстрогены при назначении(shMainHandle.Системы), то
& евро & евро & евро & евро с shMainHandle.Системы
& евро & евро & евро & евро & евро & евро если BoldDirty затем сбросьте я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- двойной Клик на модели, чтобы вызвать редактор моделей, и сделать следующее:
- менять "имя" и "название" из BusinessClasses в DCOMTestClasses
р><р класса="step_content ">
ир><р класса="step_content ">- изменить модель "корневой класс" от BusinessClassesRoot в DCOMTestClassesRoot
р><р класса="step_content ">
ир><р класса="step_content ">- добавить новый класс Person с одним атрибутом "имя"
р><р класса="step_content ">
ир><р класса="step_content ">- в меню "Сервис", сформировать базу данных
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Сервис Генерировать код - сохранить полученные файлы по умолчанию имена
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Сервис создания com idl или идентификаторы GUID (сказать "да", чтобы "сохранить существующие идентификаторы GUID?")
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Инструменты, создать в Delphi совместимое ИДЛ - сохранение файлов результатов с их по умолчанию имена
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить модель, а затем закройте редактор моделей
р><р класса="step_content ">
& евро & евро & евро & евро р><р класса="step_content ">
ир><р класса="step_content ">
- файл меню, новые [элементы ActiveX] вкладке "Тип библиотеки" и выполните следующие действия:
- нажмите на [используется] вкладка
р><р класса="step_content ">
ир><р класса="step_content ">- щелкните правой кнопкой мыши и выберите "Показать все тип библиотеки"
р><р класса="step_content ">
ир><р класса="step_content ">- если галочки "жирный Тип пространства имен библиотеки"
р><класс p="step_content ">
ир><р класса="step_content ">- щелкните правой кнопкой мыши и выберите "Показать выбранные"
р><р класса="step_content ">
ир><р класса="step_content ">- открыть файл DCOMTesterClasses.ИДЛ
<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
ир><р класса="step_content ">
- если выделить весь текст и скопировать его в буфер обмена
р><р класса="step_content ">
и в<класс p="step_content ">- нажмите на [текст] на вкладке загрузки редактора
р><р класса="step_content ">
ир><р класса="step_content ">- если заменить весь текст с текстом в буфер обмена
р><р класса="step_content ">
ир><р класса="step_content ">- нажмите "обновить реализации"
р><класс p="step_content ">
ир><р класса="step_content ">- клавишу CTRL S и сохраните tlb как имя по умолчанию (Имя_проекта.ТЛБ)
р><р класса="step_content ">
& евро & евро & евро & евро р><р класса="step_content ">
& евро & евро
р><р класса="step_content ">
ир><р класса="step_content ">- в [Вкладка жирный СОМ] брось следующие компоненты на серверной TBoldCOMServerHandle (cshServerHandle) и TBoldComServerElementHandle (cseElementHandle) и задайте следующие свойства:
& евро & евро <я>
& евро & евро cseElementHandle
& евро & евро & евро & евро BoldHandle = shMainHandle
& евро & евро & евро & евро ServerHandle = cshServerHandleя>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- дважды щелкните cshServerHandle и генерировать код, сохраните этот файл как DCOMTestServerCode.па
р><р класса="step_content ">
р><р класса="step_content ">- если скопировать GUID из DCOMTestServerCode в буфер обмена
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить и запустить приложение, все должно быть хорошо.
р><р класса="step_content ">
ир><р класса="step_content ">р><р класса="step_content ">
<у>клиентау>
ир><р класса="step_content ">
- Зарегистрировать tlb файл сервера с помощью regsvr32 или TRegSvr (от Borland\Delphi в папке\bin).
р><р класса="step_content ">
ир><р класса="step_content ">- если создать новое приложение с форма и datamodule (форма должна "использовать" модуль).
р><р класса="step_content ">
ир><р класса="step_content ">- если имя модуля dmClient, а основной формой fmClientMain.
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить форму как ClientMainForm.па, модуль как ClientModule.пас, и проект как ClientApp.ДНР
р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный СОМ] вкладке добавить TBoldCOMConnectionHandle (chCOMConnection), и TBoldSystemHandleCom (shMainHandle) задайте следующие свойства
& евро & евро <я>
& покупка & покупка chCOMConnection
& евро & евро & евро & евро ServerCLSID = GUID из DCOMTestServerCode.ССА (свойство servername должно автоматически изменить)
& евро & евро & евро & евро Автосоединение = истина
& евро & евро shMainHandle
& евро & евро & евро & евро ConnectionHandle = chCOMConnection
& евро & евро & евро & евро атрибут isdefault = истина
& евро & евро & евро & евро Имя_объекта = (Так же, как имя объекта из cseElementHandle на сервере)я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный ком ручками] вкладка бросить TBoldListHandleCom (blhPerson) на главной форме установить
и & евро & евро <я>
& покупка & покупка ConnectionHandle = dmClient.chCOMConnection
& мочекаменная & выражение мочекаменная = 'человек.allInstances'
& фитоэстрогены & мочекаменная RootHandle = dmClient.shMainHandleя>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- в [полужирный элементы управления com] вкладка бросить TBoldGridCom и TBoldNavigatorCom на главную форму и установить BoldHandle собственность как blhPerson.
р><р класса="step_content ">
ир><р класса="step_content ">- правой кнопкой мыши BoldGridCOM1 и выберите "Правка столбцов" задайте выражение свойства второго столбца "имя".
р><р класса="step_content ">
ир><р класса="step_content ">- Добавить в форму кнопку со следующим кодом прилагается
& евро & евро <я>
& евро & евро dmClient.shMainHandle.Системы.UpdateDatabase я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">р><р класса="step_content ">
приложение должно теперь работать.
ир><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>
Введение в смелые модели dcom
Введение в смелые модели dcom : Несколько тысяч советов, которые сделают вашу жизнь проще.
шаг за шагом пройти через отделения бизнес-логики на другой сервер, используя смелые модели dcom с базой данных InterBase.
эта статья была скомпилирована из журналов интернет-чаты (IRC) с Эрик Холтон. Я хотел бы поблагодарить Эрика за тратить так много времени с подробным описанием профессиональней шагов. Эрик согласился позволить мне конвертировать логи нашего разговора в этой статье на благо других<.бр />
<у>серверу>
ир><р класса="step_content ">
- создайте новое приложение с форма и datamodule.
р><р класса="step_content ">
ир><р класса="step_content ">- если имя dmServer модуль, а главная форма fmServerMain.
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить форму как ServerMainForm.па, модуль как ServerModule.пас, и проект как ServerApp.ДНР
р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный ручки] вкладке добавить TBoldModel (mbModel), TBoldSystemTypeInfoHandle (ihModelInfo), TBoldSystemHandle (shMainHandle), и TBoldPersistenceHandleIB (phInterbase).
р><р класса="step_content ">
ир><р класса="step_content ">- в инспекторе объектов установите следующие свойства:
& евро & евро <я>
& евро & евро phInterbase
& евро & евро & евро & евро Имя_базы_данных = существующий gdb файл в замене.
& евро & евро & евро & евро BoldModel = bmModel
& евро & евро & евро & мочекаменная баз данных = dbeInterbaseSQLDialect3
& евро & евро shMainHandle
& евро & евро & евро & евро SystemTypeInfoHandle = ihModelInfo
& евро & евро & евро & евро PersistenceHandle = phInterbase
В в
& евро & евро & евро & евро атрибут isdefault = истина
& евро & евро & евро & евро Автоактивация = истина
& евро & евро ihModelInfo
& евро & евро & евро & евро BoldModel = bmModel
& евро & евро я>
& и nbsp & мочекаменная ![BoldDCOM01.gif]()
р><р класса="step_content ">
р><р класса="step_content ">- на OnDestroy из datamodule включите следующий код
& евро & евро <я>
& фитоэстрогены & фитоэстрогены при назначении(shMainHandle.Системы), то
& евро & евро & евро & евро с shMainHandle.Системы
& евро & евро & евро & евро & евро & евро если BoldDirty затем сбросьте я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- двойной Клик на модели, чтобы вызвать редактор моделей, и сделать следующее:
- менять "имя" и "название" из BusinessClasses в DCOMTestClasses
р><р класса="step_content ">
ир><р класса="step_content ">- изменить модель "корневой класс" от BusinessClassesRoot в DCOMTestClassesRoot
р><р класса="step_content ">
ир><р класса="step_content ">- добавить новый класс Person с одним атрибутом "имя"
р><р класса="step_content ">
ир><р класса="step_content ">- в меню "Сервис", сформировать базу данных
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Сервис Генерировать код - сохранить полученные файлы по умолчанию имена
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Сервис создания com idl или идентификаторы GUID (сказать "да", чтобы "сохранить существующие идентификаторы GUID?")
р><р класса="step_content ">
ир><р класса="step_content ">- в меню Инструменты, создать в Delphi совместимое ИДЛ - сохранение файлов результатов с их по умолчанию имена
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить модель, а затем закройте редактор моделей
р><р класса="step_content ">
& евро & евро & евро & евро р><р класса="step_content ">
ир><р класса="step_content ">
- файл меню, новые [элементы ActiveX] вкладке "Тип библиотеки" и выполните следующие действия:
- нажмите на [используется] вкладка
р><р класса="step_content ">
ир><р класса="step_content ">- щелкните правой кнопкой мыши и выберите "Показать все тип библиотеки"
р><р класса="step_content ">
ир><р класса="step_content ">- если галочки "жирный Тип пространства имен библиотеки"
р><класс p="step_content ">
ир><р класса="step_content ">- щелкните правой кнопкой мыши и выберите "Показать выбранные"
р><р класса="step_content ">
ир><р класса="step_content ">- открыть файл DCOMTesterClasses.ИДЛ
<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
ир><р класса="step_content ">
- если выделить весь текст и скопировать его в буфер обмена
р><р класса="step_content ">
и в<класс p="step_content ">- нажмите на [текст] на вкладке загрузки редактора
р><р класса="step_content ">
ир><р класса="step_content ">- если заменить весь текст с текстом в буфер обмена
р><р класса="step_content ">
ир><р класса="step_content ">- нажмите "обновить реализации"
р><класс p="step_content ">
ир><р класса="step_content ">- клавишу CTRL S и сохраните tlb как имя по умолчанию (Имя_проекта.ТЛБ)
р><р класса="step_content ">
& евро & евро & евро & евро р><р класса="step_content ">
& евро & евро
р><р класса="step_content ">
ир><р класса="step_content ">- в [Вкладка жирный СОМ] брось следующие компоненты на серверной TBoldCOMServerHandle (cshServerHandle) и TBoldComServerElementHandle (cseElementHandle) и задайте следующие свойства:
& евро & евро <я>
& евро & евро cseElementHandle
& евро & евро & евро & евро BoldHandle = shMainHandle
& евро & евро & евро & евро ServerHandle = cshServerHandleя>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- дважды щелкните cshServerHandle и генерировать код, сохраните этот файл как DCOMTestServerCode.па
р><р класса="step_content ">
р><р класса="step_content ">- если скопировать GUID из DCOMTestServerCode в буфер обмена
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить и запустить приложение, все должно быть хорошо.
р><р класса="step_content ">
ир><р класса="step_content ">р><р класса="step_content ">
<у>клиентау>
ир><р класса="step_content ">
- Зарегистрировать tlb файл сервера с помощью regsvr32 или TRegSvr (от Borland\Delphi в папке\bin).
р><р класса="step_content ">
ир><р класса="step_content ">- если создать новое приложение с форма и datamodule (форма должна "использовать" модуль).
р><р класса="step_content ">
ир><р класса="step_content ">- если имя модуля dmClient, а основной формой fmClientMain.
р><р класса="step_content ">
ир><р класса="step_content ">- сохранить форму как ClientMainForm.па, модуль как ClientModule.пас, и проект как ClientApp.ДНР
р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный СОМ] вкладке добавить TBoldCOMConnectionHandle (chCOMConnection), и TBoldSystemHandleCom (shMainHandle) задайте следующие свойства
& евро & евро <я>
& покупка & покупка chCOMConnection
& евро & евро & евро & евро ServerCLSID = GUID из DCOMTestServerCode.ССА (свойство servername должно автоматически изменить)
& евро & евро & евро & евро Автосоединение = истина
& евро & евро shMainHandle
& евро & евро & евро & евро ConnectionHandle = chCOMConnection
& евро & евро & евро & евро атрибут isdefault = истина
& евро & евро & евро & евро Имя_объекта = (Так же, как имя объекта из cseElementHandle на сервере)я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- в [жирный ком ручками] вкладка бросить TBoldListHandleCom (blhPerson) на главной форме установить
и & евро & евро <я>
& покупка & покупка ConnectionHandle = dmClient.chCOMConnection
& мочекаменная & выражение мочекаменная = 'человек.allInstances'
& фитоэстрогены & мочекаменная RootHandle = dmClient.shMainHandleя>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">- в [полужирный элементы управления com] вкладка бросить TBoldGridCom и TBoldNavigatorCom на главную форму и установить BoldHandle собственность как blhPerson.
р><р класса="step_content ">
ир><р класса="step_content ">- правой кнопкой мыши BoldGridCOM1 и выберите "Правка столбцов" задайте выражение свойства второго столбца "имя".
р><р класса="step_content ">
ир><р класса="step_content ">- Добавить в форму кнопку со следующим кодом прилагается
& евро & евро <я>
& евро & евро dmClient.shMainHandle.Системы.UpdateDatabase я>
& евро & евро р><р класса="step_content ">
ир><р класса="step_content ">р><р класса="step_content ">
приложение должно теперь работать.
ир><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>
Введение в смелые модели dcom
By russiatips
Введение в смелые модели dcom : Несколько тысяч советов, которые сделают вашу жизнь проще.