Н, 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
Foim1->Database1 Database		^^^^^^^^^^яя^я^ялшш
:   Database - •——--••            .....................		
| Name:                                    Alias name:                             (Drive* name:                       '		
: JMyDatabase                     •    [ORACLE?                   jj    |                                 _»J  j		
: Parameter overrides:		
\	ENABLE BCD=FALSE ENABLE INTEGERS=FALSE	±j       Defaults        !
	LIST SYNONYMS=NONE	
• !	ROWSET SIZE =20	Clear          i
j	BLOBS TO CACHE=64	_j — — >;
		
i"	BLOB SIZE =32	a т!                 ;
Г Options' •-•-••••• — •• ••••••--•••••   ••••--••		
{ f~ Login prompt		
P7 Keep inactive connection		.......................... .. .... .......... .....   ...     .. ...  ....
: *'lili!:		OK       |          Cancel               Help
		
Puc. 8.7. Установка параметров компонента TDatibase главной формы сервера приложений
New Items
New   ] ActiveX(-Project! j FatKj;:'Dia^||ftojects'j"D'^ft^(ife-|:-'^Seis|
Application	Batch File              Component           Console Wizard
Data Module	DLL
Package	Project Group
r	r   •       r •••
Form
Remote Data Module
Library
Report
d
OK
Cancel
Help
Создание многозвенных информационных систем с помощью C++Builder 3.0
Remote Data Module имеет принципиальное отличие от обычного моду-ля^данных, заключающееся в том, что объекты, помещенные в него, могут иметь СОМ-интерфейс. Образно говоря, удаленный модуль данных представляет собой некий "черный ящик", управлять которым можно с помощью неких выведенных наружу "рычагов", называемых интерфейсами. От-метим7~чтоГ для каждого "тонкого" клиента, подключенного к серверу приложений, создается свой экземпляр удаленного модуля данных, на чем и основывается работа счетчика подключений.
Создание Remote Data Module начинается с запуска эксперта Remote Data Module Wizard, в котором определяется, в частности, имя класса, под которым данный сервер приложений будет зарегистрирован в реестре как OLE-сервер (рис. 8.9).
Remote Data Module Wizard
Class Name:
[MyRDM
OK
Cancel
Help
Puc. 8.9. Выбор имени класса для удаленного модуля данных
Далее в созданный удаленный модуль данных поместим два компонента ТТаЫе, связанных с компонентом Database 1 и указывающих на только что созданные таблицы CLIENTS и HOLDINGS (рис. 8.10). Свойство Active этих компонентов ТТаЫе следует установить равным true (или установить его динамически при создании модуля данных). В противном случае они не будут содержать никаких данных, и тем более предоставлять их клиентскому приложению.
rfeMyRDM
ТаЫе1     ТаЫе2
Рис   V ,V. Выбор удаленного модуля данных из репозиташ объектов
Рис. 8.10. Содержимое удаленного модуля данных
Почему при использовании компонента TDatabase он был помещен на главную форму, а не в удаленный модуль данных? Если этот компонент
172
173