RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Интерфейс выполнения запросов с одним шагом

int sqlite3_exec(
  sqlite3*,                                  /* An open database */
  const char *sql,                           /* SQL to be evaluated */
  int (*callback)(void*,int,char**,char**),  /* Callback function */
  void *,                                    /* 1st argument to callback */
  char **errmsg                              /* Error msg written here */
);

Интерфейс sqlite3_exec() это обертка удобства вокруг sqlite3_prepare_v2(), sqlite3_step() и sqlite3_finalize(), который позволяет управлять многочисленными запросами SQL, не имея необходимости использовать много кода C.

Интерфейс sqlite3_exec() управляет нолем или большим количеством разделенных точкой с запятой SQL-операторов, переданных в UTF-8 в его 2-й аргумент в контексте соединения с базой данных, переданного как его 1-й аргумент. Если функция обратного вызова 3-го аргумента sqlite3_exec() не NULL, то это вызвано для каждой строки результата из оцененных SQL-операторов. 4-й аргумент sqlite3_exec() передается через 1-й аргумент каждого отзыва. Если указатель отзыва на sqlite3_exec() = NULL, то никакой отзыв никогда не вызывается, и строки результата проигнорированы.

Если ошибка происходит, оценивая SQL-операторы, переданные в sqlite3_exec(), то выполнение текущего запроса остановлено и последующие запросы пропущены. Если 5-м параметром sqlite3_exec() не является NULL, любое сообщение об ошибке написано в память, полученную из sqlite3_malloc(), и переданное назад через 5-й параметр. Чтобы избежать утечек памяти, приложение должно вызвать sqlite3_free() на последовательностях сообщения об ошибке, возвращенных через 5-й параметр sqlite3_exec() после того, как последовательность сообщения об ошибке больше не будет необходима. Если 5-й параметр sqlite3_exec() не NULL и никакие ошибки не происходят, то sqlite3_exec() устанавливает указатель в своем 5-м параметре в NULL перед возвращением.

Если отзыв sqlite3_exec() вернет отличное от нуля, sqlite3_exec() возвращает SQLITE_ABORT, не вызывая отзыв снова и не управляя никакими последующими SQL-операторами.

2-м аргументом sqlite3_exec() является количество колонок в результате. 3-м аргументом sqlite3_exec() является множество указателей на последовательности, полученные как будто от sqlite3_column_text(), один для каждой колонки. Если элемент ряда результата NULL, тогда соответствующий указатель строки для отзыва sqlite3_exec() = NULL. 4-й аргумент отзыва sqlite3_exec() множество указателей на последовательности, где каждый вход представляет название соответствующего столбца результата, как получено из sqlite3_column_name().

Если 2-й параметр sqlite3_exec() = NULL, указателем на пустую строку или указателем, который содержит только пробелы и/или комментарии SQL, то никакие SQL-операторы не оценены, и база данных не изменяется.

Ограничения:

  • Приложение должно гарантировать, что 1-й параметр sqlite3_exec() является действительным и открытым соединением с базой данных.
  • Приложение не должно закрывать соединение с базой данных, определенное 1-м параметром sqlite3_exec(), в то время как sqlite3_exec() работает.
  • Приложение не должно изменять текст SQL-оператора, переданный во 2-й параметр sqlite3_exec() во время работы sqlite3_exec().