Книга: Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil

Выполнение команды

Выполнение команды

Вызов операции execute является последним этапом выполнения SQL-запроса к базе данных, в ко юром )частв)е] объект команды Первоначальное и почти полное описание всех этапов выполнения этой операции заняло больше двух листов, забитых сухой технической информацией, дочитывая которую забываешь, с чего все началось. Шутка. Поэтому ограничимся коротким списком задач, выполняемых командой при вызове операции выполнения SQL-запроса.

* Проверка параметров. Количество разнообразных ошибок, вылавливаемых на этом этапе, превышает полтора десятка.

* Получение транзакции, в рамках которой будет выполняться SQL-запрос. Это может быть собственная активная транзакция родительской сессии или отдельная автоматически завершаемая транзакция (если таковые разрешены).

* Создание нового дескриптора низкоуровневого запроса, если текущий, принадлежащий команде, обслуживает набор строк, сформированных предыдущим вызовом операции execute. Такая ситуация может произойти при многократных вызовах execute для одного и того же SQL-запроса.

* Подготовка команды, если эта операция еще не была выполнена.

* Вызов InterBase API для выполнения запроса.

* Возвращение результата (если таковые создаются) через OUT-параметры или объект набора строк (rowset)

При выполнении SQL-запросов модификации данных (INSERT, UPDATE, DELETE) можно узнать число строк, затронутых запросом:

ADODB

cmd.CommandText =

"insert into project (proj_id,proj_name,proj_desc) " & _

"values(?,?,?)"

cmd(0) = 1001

cmd(l) = "test 1001"

cmd(2) = "test 1001"

Dim RowAffected As Long 'кол-ве вставленных строк

cmd.Execute RowAffected

Debug.Print "insert " & CStr(RowAffected) & " rows"

Оглавление книги


Генерация: 0.593. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз