Корпоративные базы данных - статьи




Курсоры



Контакт клиента с сервером SQLBase является постоянным. Сеанс контакта с базой данных
инициируется клиентом с помощью команды CONNECT и прекращается командой
DISCONNECT. Во время сеанса клиент выпускает одну или несколько транзакций к базе данных.
SQLBase относится СУБД транзакционного типа, основанного на концепции курсоров (cursor) в
отличие от технологии процессов базы данных (db-process).

Курсор в SQLBase имеет много самых разных значений. Прежде всего, курсор - это идентификатор
контакта пользователя с базой данных (или административного контакта с сервером SQLBase).
Далее, с курсором связаны скомпилированные запросы на языке SQL, извлеченные из базы данных
и подготовленные к выполнению хранимые команды и процедуры, а также полученные в
результате выполнения запросов, команд и процедур множества результатов (result sets). Наконец,
курсор также определяет положение (строку) в текущем result set'е, обрабатываемым клиентским
приложением.



В SQLBase, так же как и в Oracle, не существует специальной команды, определяющей начало
транзакции подобно BEGIN WORK или BEGIN TRANSACTION. Транзакция автоматически
начинается с первого запроса к базе данных, последовавшего за окончанием предыдущей
транзакции. Для указания окончания транзакции служат команды, приведенные на рис. 4.

Рис. 4. Команды окончания транзакции SQLBase

Команда
Описание



ROLLBACK
Неудачное окончание транзакции. Изменения
не записываются в базу данных. Блокировки, связанные с данной
транзакцией сбрасываются.
COMMIT
Удачное окончание транзакции. Изменения
записываются в базу данных. Блокировки, связанные с данной
транзакцией сбрасываются.
SAVEPOINT
Удачное окончание части длительной
транзакции. Частичные изменения записываются в базу данных. Эта
команда используется во время длительных транзакций (например, ввода
большого количества данных) для фиксации прохождения некоторого
этапа. Если при дальнейшей обработке транзакции произойдет ее откат
(ROLLBACK), все изменения, сделанные до последней команды
SAVEPOINT, останутся в базе данных.
<


Содержание  Назад  Вперед