Н. 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet		
~»		
	DataField	IMAGE
	LoginPrompt	false
Button 1	Caption	Сохранить
Button2	Caption	Отменить
ButtonS	Caption	Выход
При_дыполнении метода Post компонента Table 1 новые записи накапливаются в кэше, а изменений в таблице, хранящейся на сервере, не происходит, что можно проконтролировать, например, с помощью утилиты Database Explorer. При нажатии на кнопку "Сохранить" внесенные записи переносятся на сервер, что также можно проконтролировать, перечитав редактируемую таблицу (рис. 3.9).
Рис. 3.9. Перенос содержимого кэша на сервер
3.3     Компонент TSession
Компонент TSession автоматически создается при запуске приложений Необходимость его явного использования может возникнуть прщ созданШ1
52
Компоненты Data Access, используемые в приложениях клиент/сервер
^ногопоточных приложений с базами данных (например, когда в одном fiотоке выполняется длительный запрос, а в другом в это время производится ввод данных в кэш). В этом случае число компонентов TSession равно числу потоков. Помимо этого компонент TSession может быть использован для определения на этапе выполнения списка и параметров драйверов и "псевдонимов или списка хранимых процедур.
Еще одно из возможных применений компонента TSession - использование его совместно с компонентом TDatabase в удаленных модулях данных серверов приложений в случае, когда каждый клиент сервера приложений должен иметь свое независимое соединение с базой данных.
Основные свойства этого компонента: Databases - массив активных компонентов TDatabase, SessionName - имя сеанса. Основные методы: GetDatabaseNames, GetAliasNames - возвращают списки драйверов и псевдонимов, GetAliasParams - возвращает параметры для данного псевдонима, GetDriverNames - возвращает имена доступных драйверов BDE, GetTableNames и GetStoredProcNames - возвращают список таблиц базы данных и список хранимых процедур.
3.4 Компонент TBatchMove
Этот компонент обеспечивает копирование данных из одной таблицы в_ другую. Основные свойства: Source - таблица (йЛи"запрос), откуда копируются данные, Destination - таблица, куда копируются данные, Mapping -определяет соответствие между колонками исходной и результирующей таблиц (для идентичных таблиц это свойство определять необязательно), Mode - тип перемещения (batAppend - добавляет новые строки в результирующую таблицу, batUpdate - заменяет строки в результирующей таблице на соответствующие строки оригинала, batCopy - копирует строки в результирующую таблицу,^ереписывая_ее, batDelete - удаляет записи в результирующей таблице, соответагв^ющие записям оригинала), KeyViolTableName и ProblemTableName - имена дополнительных таблиц для помещения записей, чье копирование запрещено правилами ссылочной целостности или по каким-либо причинам невозможно (например, из-за несоответствия типов данных), ChangedTableName - имя таблицы для помещения измененных записей.
Копирование происходит при выполнении метода Execute. Отметим, что этот метод может быть вызван непосредственно из среды разработки с помощью контекстного меню компонента TBatchMove.
Чаще всего подобное копирование используется при смене сервера баз Данных или при переносе desktop-приложения в архитектуру "клиент/сервер". В этом случае возможно выявить нарушения ссылочной целостности
53