Spec-Zone.ru › SQLite

Получение SQL-запроса

const char *sqlite3_sql(sqlite3_stmt *pStmt);
char *sqlite3_expanded_sql(sqlite3_stmt *pStmt);
#ifdef SQLITE_ENABLE_NORMALIZE
const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt);
#endif

Интерфейс sqlite3_sql(P) возвращает указатель на копию текстового представления SQL на UTF-8, используемого для создания подготовленного оператора P, если P был создан с помощью sqlite3_prepare_v2(), sqlite3_prepare_v3(), sqlite3_prepare16_v2() или sqlite3_prepare16_v3(). Интерфейс sqlite3_expanded_sql(P) возвращает указатель на строку UTF-8, содержащую текст SQL подготовленного оператора P с расширенными связанными параметрами. Интерфейс sqlite3_normalized_sql(P) возвращает указатель на строку UTF-8, содержащую нормализованный текст SQL подготовленного оператора P. Семантика нормализации SQL-запроса не определена и может быть изменена. Как минимум, буквальные значения будут заменены соответствующими плейсхолдерами.

Например, если подготовленный оператор создан с помощью SQL-текста "SELECT $abc,:xyz", и если параметр $abc связан с целым числом 2345, а параметр :xyz не связан, то sqlite3_sql() вернёт исходную строку "SELECT $abc,:xyz", но sqlite3_expanded_sql() вернёт "SELECT 2345,NULL".

Интерфейс sqlite3_expanded_sql() возвращает NULL, если доступно недостаточно памяти для хранения результата или если результат превысит максимальную длину строки, определяемую SQLITE_LIMIT_LENGTH.

SQLITE_TRACE_SIZE_LIMIT — опция компиляции, ограничивающая размер расширения связанных параметров. Опция компиляции SQLITE_OMIT_TRACE заставляет sqlite3_expanded_sql() всегда возвращать NULL.

Строки, возвращаемые sqlite3_sql(P) и sqlite3_normalized_sql(P), управляются SQLite и автоматически освобождаются при завершении подготовки оператора. С другой стороны, строка, возвращаемая sqlite3_expanded_sql(P), получена с помощью sqlite3_malloc() и должна быть освобождена приложением, передав её в sqlite3_free().

Интерфейс sqlite3_normalized_sql() доступен только в том случае, если определена опция компиляции SQLITE_ENABLE_NORMALIZE.

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

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

Spec-Zone.ru

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