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

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Восстановление запроса 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 определяется.