Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Управление соединением и транзакциями




Как следует из изложенного, установление соединения с хранилищем данных может осуществляться компонентами доступа к данным ADO через их свойство ConnectionString.

Кроме того, компоненты доступа к данным ADO могут соединяться с хранилищем данных через свойство Connection, связывающее их с компонентом соединения ADOConnection. При этом последний компонент связывается с хранилищем данных через свое свойство ConnectionString.

Достоинство применения компонента ADOConnection для связи компонентов доступа к данным с хранилищами данных состоит в том, что он позволяет управлять параметрами соединения и транзакциями.

С помощью свойства CoursorLocation типа TCursorLocation можно задать библиотеку, используемую курсором при соединении с хранилищем данных. Используемое по умолчанию значение clUseClient означает, что все данные располагаются и обрабатываются на компьютере-клиенте. При этом достигается наибольшая гибкость: возможны операции, которые могут не поддерживаться сервером. Тем не менее, операторы SQL все равно выполняются на сервере, а клиенту передаются результаты выполнения запроса.

Если свойству CoursorLocation задано значение clUseServer, то обработка данных ведется на сервере. Такое значение свойства целесообразно устанавливать в случае задания команд, возвращающих большой объем данных.

При использовании технологии ADO соединение может быть синхронным или асинхронным, что можно задать с помощью свойства ConnectOptions типа

TConnectOption, который описан так:

type TConnectOption = (coConnectUnspecified, coAsyncConnect);

Значение coConnectUnspecified задает синхронное соединение, которое всегда ожидает результат последнего запроса, значение coAsyncConnect задает асинхронное соединение, при котором новые запросы выполняются, не ожидая ответа от предыдущих запросов.

Перед установлением соединения возникает событие OnWillConnect типа TWillConnectEvent, который описан так:

TWillConnectEvent = procedure(Connection: TADOConnection; var
ConnectionString, UserID, Password: WideString; var ConnectOptions:
TConnectOption; var EventStatus: TEventStatus) of object;

Здесь: Connection указывает на соответствующий компонент соединения; ConnectionString, Password, WideString определяют строку соединения, имя и пароль пользователя соответственно; ConnectOptions указывает на синхронное или асинхронное соединение.

Параметр EventStatus указывает на успешность выполнения запроса на соеди­нение. Тип этого параметра описан так:

type TEventStatus =
(esOK,esErrorsOccured,esCantDeny,esCancel,esUnwantedEvent);

Здесь, например: esOK — соединение выполнено успешно; esErrorsOccured — ошибка при выполнении операции; esCantDeny — незаконченную операцию соединения нельзя отменить.

После установки соединения возникает событие OnConnectComplete типа TConnectErrorEvent, который описан так:

TConnectErrorEvent = procedure(Connection: TADOConnection; Error: Error;
var EventStatus: TEventStatus) of object;

В случае возникновения ошибки в процессе соединения параметр EventStatus будет иметь значение esErrorsOccured, а параметр Error будет содержать объект ошибки ADO.

Объекты ошибки ADO содержат информацию об ошибке, возникшей при выполнении операции над каким-либо объектом ADO. Разработчик может использовать методы объекта ошибки интерфейса Error, предоставляемого многими методами других объектов ADO. Укажем важные свойства объекта ошибки. Свойство Description возвращает описание ошибки, переданное из объекта. Свойство SQLState содержит текст команды, вызвавшей ошибку. Свойство NativeError возвращает код ошибки, переданный из объекта, в котором ошибка произошла.

При разрыве соединения возникает событие OnDisconnect типа TDisconnectEvent, который описан так:

TDisconnectEvent = procedure(Connection: TADOConnection; var EventStatus:
TEventStatus) of object;

Управление транзакциями осуществляется с помощью методов и свойств компонента ADOConnection.

Для запуска транзакции используется функция BeginTrans, возвращающая целое значение — уровень вложенности новой транзакции. В случае успешного запуска транзакции свойство InTransaction принимает значение True, указывающее на то, что компонент соединения находится в транзакции.

Для завершения транзакции и сохранения внесенных изменений в хранилище данных используется метод CommitTrans. При успешном его выполнении свойство InTransaction принимает значение False.

Для отката транзакции служит метод RollbackTrans. При его успешном выполнении отменяются все изменения, внесенные в ходе транзакции, а свойство InTransaction принимает значение True.

Для управления запуском транзакций, оставшихся незавершенными, служит свойство Attributes типа TXactAttributes. Оно принимает два значения: xaCommitRetaining — незавершенная транзакция начинается при подтверждении предыдущей транзакции; xaAbortRetaining — незавершенная транзакция начинается при отмене предыдущей транзакции.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных