![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Это сервисная процедура, полезная для реализации
VFS, а именно для проверки, если файлом базы данных был URI, который
содержал определенный параметр запроса, и если так, то получения значения
того параметра запроса. Первый параметр к этим интерфейсам (в дальнейшем именуемый F) должен
быть одним из:
Если F подходящее имя файла (как описано в предыдущем параграфе) и P
название параметра запроса, то sqlite3_uri_parameter(F,P) вернет
значение параметра P, если это существует или NULL,
если P не появляется как параметр запроса в F. Если P параметр запроса F, и
у этого нет явного значения, sqlite3_uri_parameter(F,P) вернет
указатель на пустую строку. sqlite3_uri_boolean(F,P,B) предполагает, что P булев параметр и возвращает
true (1) или false (0), согласно значению P. sqlite3_uri_boolean(F,P,B)
вернет true (1), если значение параметра запроса P является одним из "yes",
"true" или "on" в любом регистре или если значение начинается с числа,
отличного от нуля. sqlite3_uri_boolean(F,P,B) вернет false (0),
если значение параметра запроса P является одним из "no", "false" или "off"
в любом регистре или если значение начинается с 0. Если P не параметр запроса
на F или если значение P не соответствует ни одному из вышеупомянутых
вариантов, то sqlite3_uri_boolean(F,P,B) вернет (B!=0). sqlite3_uri_int64(F,P,D) преобразовывает значение P в 64-битное целое
число со знаком и вернет это целое число или D, если P не существует.
Если значение P что-то другое, чем целое число, то ноль возвращен. sqlite3_uri_key(F,N) возвращает указатель на имя (не значение) параметра
N запроса для имени файла F или NULL, если N меньше ноля или больше, чем
количество параметров запроса минус 1. Значение N основано на ноле, таким
образом, N должен быть 0, чтобы получить название первого параметра запроса,
1 для второго параметра и т.д. Если F = NULL, sqlite3_uri_parameter(F,P) вернет NULL,
sqlite3_uri_boolean(F,P,B) вернет B. Если F не NULL
и не является указателем пути файла базы данных, который ядро SQLite
передало в метод xOpen VFS, то поведение этой функции
не определено и вероятно нежелательно. Начиная с SQLite version 3.31.0
(2020-01-22) параметр F может также быть названием файла журнала обратной
перемотки или файла WAL в дополнение к главному файлу базы данных. До версии
3.31.0 это работало только если F был названием главного файла базы данных.
Когда параметр F название журнала обратной перемотки или файла WAL, у этого
есть доступ ко всем одинаковым параметрам запроса, какие были для главного
файла базы данных.
Choose any three.
SQLite C Interface
Получите значения для параметров URI
const char *sqlite3_uri_parameter(sqlite3_filename z, const char *zParam);
int sqlite3_uri_boolean(sqlite3_filename z, const char *zParam, int bDefault);
sqlite3_int64 sqlite3_uri_int64(sqlite3_filename, const char*, sqlite3_int64);
const char *sqlite3_uri_key(sqlite3_filename z, int N);
Если параметр F не один из вышеупомянутых, то поведение не определено и
вероятно нежелательно. Более старые версии SQLite были более терпимы к
недействительным параметрам F, чем более новые версии.