Spec-Zone.ru › SQLite

Определение завершённости SQL-запроса

int sqlite3_complete(const char *sql);
int sqlite3_complete16(const void *sql);

Эти функции полезны во время ввода команд в консоли, чтобы определить, образует ли введённый текст завершённый SQL-запрос или требуется дополнительный ввод перед отправкой текста в SQLite для парсинга. Эти функции возвращают 1, если входная строка, похоже, представляет собой завершённый SQL-запрос. Запрос считается завершённым, если он заканчивается токеном точка с запятой и не является префиксом хорошо сформированного оператора CREATE TRIGGER. Точки с запятой, вставленные внутри строковых литералов или именованных идентификаторов в кавычках или комментариях, не являются независимыми токенами (они являются частью токена, в котором они встроены), и поэтому не считаются терминаторами запроса. Пробелы и комментарии, следующие за последней точкой с запятой, игнорируются.

Эти функции возвращают 0, если запрос неполный. Если происходит ошибка выделения памяти, то возвращается SQLITE_NOMEM.

Эти функции не анализируют SQL-запросы, поэтому не смогут обнаружить синтаксически неправильные SQL-запросы.

Если SQLite не был инициализирован с помощью sqlite3_initialize() до вызова sqlite3_complete16(), то sqlite3_initialize() вызывается автоматически функцией sqlite3_complete16(). Если эта инициализация завершится неудачно, то возвращаемое значение sqlite3_complete16() будет отличным от нуля независимо от того, является ли входной SQL-запрос полным или нет.

Ввод для sqlite3_complete() должен быть нуль-терминированной строкой UTF-8.

Ввод для sqlite3_complete16() должен быть нуль-терминированной строкой UTF-16 в родном порядке байтов.

См. также списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/c3ref/complete.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API