→ Пошук по сайту       Увійти / Зареєструватися
Знання Технология ADO в Delphi Компоненты Delphi для поддержки ADO

Связной компонент TADOConnection

Этот компонент осуществляет связь остальных компонентов с ADO. Для этих целей у него имеется строка ConnectionString. После того, как с помощью этой строки связь с данными установлена, на компонент могут ссылаться другие ADO-компоненты, разделяя установленную им связь.

Однако компонент TADOConnection может выполнять гораздо более широкую роль, чем простая концентрация соединения. С помощью своих свойств и методов он может осуществлять тонкую настройку соединения, обеспечивать необходимый уровень изоляции транзакций, управлять транзакциями и т.д.

Для установления связи нужно с помощью строки ConnectionString сформировать связные параметры и затем установить значение True в свойство Active или вызвать метод Open . Для разрыва связи выполняется метод Close компонента или в его свойство Active устанавливается значение False .

Компонент содержит в свойстве ConnectionObject ссылку на базовый ADO-объект, с помощью которого и работает сам компонент. Это свойство открывает возможности детального управления связью, если, разумеется, программист хорошо знаком с техникой ADO .

В свойствах CommandCount и DataSetCount содержится количество соответствующих объектов, которые обслуживаются данным компонентом. В сочетании со свойствами Commands и DataSets программист может получить доступ к любому интересующему его объекту. Например:

var
i: Integer;
begin
  for i := 0 to (ADOConnectionl.DataSetCount) do
  ADOConnectionl.DataSets[i].Open;
end;

С помощью методов GetProcedureNames и GetTableNames можно получить список всех хранимых процедур и таблиц. Например:

AdoConnectionl.Open;
AdoConnectionl.GetTableNames(ListBoxl.Items)

Важной особенностью компонента является возможность управления с его помощью транзакциями. Для этого в состав компонента добавлены соответствующие методы и события.

С помощью метода BeginTrans стартует новая транзакция, методы CommitTrans и RollbackTrans подтверждают или отменяют ее действие. Разрешается произвольная глубина вложенности транзакций, т.е. после старта одной транзакции может немедленно стартовать следующая и т.д. Уровни разграничения транзакций (свойство IsolationLevel ) несколько отличаются от аналогичных уровней BDE и в некоторых случаях могут не поддерживаться сервером БД. Транзакция, стартующая с помощью компонента TADOConnection , разделяется всеми другими связанными с ним компонентами. С помощью свойства InTransaction программа может определить, завершилась ли ранее начатая транзакция.

Основные свойства
Свойства Назначение
property CommandCount: Integer; Указывает количество командных компонентов, которые ссылаются на него
property Commands [Index: Integer]: TADOCommand Открывает индексированный доступ к командным компонентам.
property Connected: Boolean; Определяет, связан ли компонент с набором данных.
property ConnectionObject: Connection; Содержит ссылку на компонент TADOConnection.
property ConnectionString: Wide- String; Содержит связную строку.
property ConnectOptions: TConnectOption; Указывает, будет ли связь синхронной (coConnectUnspecified) или асинхронной (coAsyncConnect)
property DataSetCount: Integer; количество связанных наборов данных.
property DataSets[Index: Integer]: TCustomADODataSet; Открывает индексированный доступ к компонентам-наборам.
property Errors: Errors; Содержит коллекцию ошибок, выявленных при работе компонента.
property InTransaction: Boolean; Содержит True, если компонент поддерживает хотя бы одну еще незавершенную транзакцию.

Основные методы
Метод Назначение
function BeginTrans: Integer; Инициирует новую транзакцию в связанной БД. Возвращает уровень вложенности вновь начатой транзакции (1, 2 и т.д.).
procedure Cancel; Разрывает установленную ранее асинхронную связь.
procedure CloseDataSets (All: Boolean = True) ; Закрывает набор данных, с которым установлена связь, но не разрывает связь с БД, Если All имеет значение True, закрываются все НД, в противном случае не закрываются только те из них, для которых на клиентской стороне созданы курсоры.
procedure CommitTrans; Подтверждает текущую транзакцию и закрывает ее.
procedure GetProcedureNames (List: TStrings) ; В переменной List возвращает список всех зарегистрированных в БД хранимых процедур.
procedure GetTableNames (List : TStrings; SystemTables: Boolean = False) ; В переменной List возвращает список всех ТБД. Если SystemTables имеет значение True, в список включаются также служебные таблицы.
procedure RollbackTrans; Отменяет текущую транзакцию.

Основные события
Событие С чем связано
property AfterConnect: TNotifyEvent; Возникает после установки связи.
property AfterDisconnect: TNotifyEvent; Возникает после разрыва связи.
property BeforeConnect: TNotifyEvent; Возникает перед установлением связи.
Property BeforeDisconnect: TnotifyEvent; Возникает перед разрывом связи.
TExecuteCompleteEvent = procedure (Connection: TADOConnection; RecordsAffected: Integer; const Error: Error; var EventStatus: TEventStatus; const Command: _Command; const Recordset: _Recordset) of object;
property OnExecuteComplete: TExecuteCompleteEvent read FOnExecuteComplete write FOnExecuteComplete;
Возникает после выполнения команды.
загрузка...
Сторінки, близькі за змістом