![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Интерфейс 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-операторы не оценены, и база данных не изменяется. Ограничения:
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 */
);