Все обращения из приложения к таблицам одной базы данных осуществляются через одно соединение, на которое замыкаются все компоненты доступа к данным, имеющие соответствующие значения свойства
DatabaseName (см. ниже).
Все управление одиночным соединением с какой-либо базой данных в BDE осуществляется компонентом
TDatabase (табл. 16.5). В процессе работы компонент активно использует параметры псевдонимов и драйверов BDE.
|
|
|
|
property AliasName: string;
|
|
Задает имя псевдонима BDE используемой базы данных
|
property Connected: Boolean;
|
|
Управляет включением соединения с базой данных
|
property DatabaseName: string;
|
|
Определяет имя базы данных
|
property DataSetCount: Integer;
|
|
Возвращает число открытых наборов данных, работающих через данное соединение
|
property DataSets [Index: Integer]: TDBDataSet;
|
|
Индексированный список всех объектов открытых наборов данных этого соединения
|
property Directory: string;
|
|
Определяет текущий каталог для баз данных Paradox и
dBASE
|
property DriverName: string;
|
|
Содержит имя драйвера базы данных
|
property Exclusive: Boolean;
|
|
При значении True другие приложения не могут работать с базой данных одновременно с этим компонентом
|
type HDBIDB: Longint; property Handle: HDBIDB;
|
|
Дескриптор BDE. Используется для прямых вызовов функций API BDE
|
property HandleShared:
Boolean;
|
|
При значении True дескриптор BDE компонента доступен в компоненте
TSession
|
property InTransaction: Boolean
|
|
Показывает состояние транзакции. При значении
True транзакция выполняется
|
property IsSQLBased: Boolean;
|
|
При значении True соединение работает через драйвер SQL Links
|
property KeepConnection: Boolean;
|
|
При значении True соединение продолжает оставаться активным после закрытия всех наборов данных. При значении
False после закрытия последнего набора данных соединение закрывается
|
type TLocale: Pointer; property Locale: TLocale;
|
|
Указывает на языковый драйвер BDE, используемый при работе с базой данных
|
property LoginPrompt: Boolean;
|
|
Управляет отображением стандартного диалога регистрации пользователя при подключении к серверу
|
property Params: TStrings;
|
|
Содержит список значений параметров псевдонима BDE, которые пользователь задает перед подключением к серверу
|
property Session: TSession
|
|
Указывает на компонент TSession,
который управляет работой данного компонента
|
property SessionAlias: Boolean;
|
|
При значении True при подключении к БД используется псевдоним сессии
|
property SessionName: string;
|
|
Содержит имя сеанса, который управляет работой компонента
|
property Readonly: Boolean;
|
|
Управляет режимом доступа к данным "только для чтения"
|
property Temporary: Boolean;
|
|
Значение True говорит о том, что экземпляр компонента создан во время выполнения
|
type
TTraceFlag = (tfQPrepare, tfQExecute, tfError, tfStmt, tf Connect, tfTransact, tfBlob, tfMisc, tfVendor, tfDataln, tfDataOut) ;
TTraceFlags = set of TTraceFlag;
property TraceFlags: TTraceFlags;
|
|
Определяет перечень операций, выполнение которых отображается в утилите SQL Monitor при выполнении
приложения
|
type TTransIsolation = (tiDirtyRead, tiReadCommitted, tiRepeatableRead) ;
property Translsolation: TTransIsolation;
|
|
! Определяет уровень изоляции транзакций:
- tiDirtyRead— незавершенное
чтение;
- tiReadCommitted
— завершенное чтение;
- tiRepeatableRead
— повторяемое чтение
|
|
procedure ApplyUpdates (const DataSets: array of TDBDataSet);
|
|
Фиксирует все изменения в наборах данных, работающих через это соединение, в базе данных
|
|
|
Закрывает все открытые наборы данных и соединение
|
|
|
Закрывает все открытые наборы данных, работающие через это соединение
|
|
|
Завершает выполнение текущей транзакции и фиксирует все изменения в базе данных
|
function Execute (const SQL: string; Params : TParams = nil; Cache: Boolean = False; Cursor: phDBICur = nil) : Integer;
|
|
Выполняет запрос SQL без использования компонента
TQuery. Текст запроса содержится в параметре SQL. Параметры запроса определяются параметром Params. Режим кэширования изменений включается параметром
Cache. Параметр Cursor может использоваться при работе с функциями BDE, использующими курсор набора данных (см. гл. 14)
|
procedure FlushSchemaCache (const TableName: string);
|
|
Изменяет представление о структуре таблиц БД, загруженной в память
|
|
|
|
|
|
Отменяет все операции текущей транзакции и завершает ее
|
procedure StartTransaction;
|
|
Начинает выполнение транзакции
|
procedure ValidateName (const Name: string) ;
|
|
Вызывает исключительную ситуацию, если база данных
Name уже открыта в текущей сессии
|
Методы-обработчики событий
|
type TLoginEvent = procedure (Database: TDatabase; LoginParams: TStrings) of object;
property OnLogin: TLoginEvent;
|
|
Вызывается при регистрации пользователя на сервере
|
property AfterConnect: TNotifyEvent;
|
|
Вызывается после подключения
|
property AfterDisconnect: TNotifyEvent;
|
|
Вызывается после отключения
|
property BeforeConnect: TNotifyEvent;
|
|
Вызывается перед подключением
|
property AfterDisconnect: TNotifyEvent;
|
|
Вызывается перед отключением
|
Для определения базы данных (сервера), с которой приложение устанавливает соединение при помощи компонента
TDatabase, чаще используется
свойство AliasName. Свойства DatabaseName
и DriverName
предоставляют альтернативный способ создания соединения.
можно использовать для создания временного псевдонима, который будет доступен только для компонентов доступа к данным внутри приложения. При щелчке на кнопке списка доступных псевдонимов свойства
DatabaseName в Инспекторе объектов для любого компонента доступа к данным в списке будет доступен и временный псевдоним компонента
TDatabase.
Например, при переключении приложения на другую базу данных можно изменить только значение псевдонима в компоненте
TDatabase. Если все компоненты наборов данных подключены к временному псевдониму компонента
TDatabase, то они автоматически переключатся на новую БД.
Дополнительные возможности управления наборами данных при переключении соединения предоставляют свойства
Connected и KeepConnection. Они позволяют одновременно с соединением закрыть все активные наборы данных.
Аналогичная картина возникает при закрытии наборов данных и отключении от БД. Дополнительное средство управления в этом случае предоставляет свойство
KeepConnection. Если оно равно значению True, то при закрытии последнего открытого набора данных соединение остается открытым. В противном случае соединение автоматически закрывается.
Это позволяет управлять соединением в различных исходных ситуациях. При большой загруженности сервера бывает необходимо прерывать соединение каждый раз. Если требуется разгрузить сетевой график, то соединение лучше оставлять включенным.
При подключении к базе данных довольно часто требуется задать значения для параметров драйвера BDE. Для этого используется свойство
Params, представляющее собой обычный список. В нем необходимо задавать названия изменяемых параметров и их новые значения:
Значения параметров можно задавать как статически, так и динамически во время выполнения.
Дополнительные возможности обработки регистрации пользователя дает единственный метод-обработчик
onLogin, программный код которого выполняется вместо появления стандартного диалога ввода имени и пароля. Это позволяет разработчику создавать собственные сценарии регистрации пользователей.