Введение в смелые модели 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 : Несколько тысяч советов, которые сделают вашу жизнь проще.