Мир InterBase

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


Вызов операции 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"



    Содержание раздела