Spec-Zone.ru › SQLite

Проверка ключевых слов SQL

int sqlite3_keyword_count(void);
int sqlite3_keyword_name(int,const char**,int*);
int sqlite3_keyword_check(const char*,int);

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

Интерфейс sqlite3_keyword_count() возвращает количество различных ключевых слов, понимаемых SQLite.

Интерфейс sqlite3_keyword_name(N,Z,L) находит N-ое (с нуля) ключевое слово и устанавливает *Z на это ключевое слово, представленное в UTF8, а также записывает количество байтов в ключевое слово в *L. Строка, на которую указывает *Z, не завершается нулём. Процедура sqlite3_keyword_name(N,Z,L) возвращает SQLITE_OK, если N находится в пределах допустимых значений, и SQLITE_ERROR — в противном случае. Если Z или L равны NULL или являются неверными указателями, вызовы sqlite3_keyword_name(N,Z,L) приводят к неопределённому поведению.

Интерфейс sqlite3_keyword_check(Z,L) проверяет, является ли L-байтовый идентификатор UTF8, на который указывает Z, ключевым словом, возвращая ненулевое значение, если это так, и нулевое — если нет.

Парсер, используемый SQLite, допускает некоторые ошибки. Часто возможно использовать ключевое слово как идентификатор, если такое использование не приводит к неоднозначности при разборе. Например, утверждение «CREATE TABLE BEGIN(REPLACE,PRAGMA,END);» принимается SQLite и создает новую таблицу с именем «BEGIN» и тремя столбцами с именами «REPLACE», «PRAGMA» и «END». Тем не менее, лучшей практикой является избегание использования ключевых слов в качестве идентификаторов. Распространённые методы, используемые для предотвращения конфликтов имён ключевых слов, включают:

  • Заключение всех имён идентификаторов в двойные кавычки. Это официальный способ экранирования имён идентификаторов в SQL.
  • Заключение имён идентификаторов в квадратные скобки. Это не стандартный SQL, но это то, что делает SQL Server, и поэтому многие программисты используют этот метод.
  • Начало каждого идентификатора с буквы «Z», так как ни одно ключевое слово SQL не начинается с «Z».
  • Включение цифры в каждое имя идентификатора.

Обратите внимание, что количество ключевых слов, понимаемых SQLite, может зависеть от опций времени компиляции. Например, «VACUUM» не является ключевым словом, если SQLite скомпилирован с опцией -DSQLITE_OMIT_VACUUM. Кроме того, в будущих версиях SQLite могут быть добавлены новые ключевые слова.

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

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

Spec-Zone.ru

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