Obtain Values For URI Parameters
获取 URI 参数的值
const char *sqlite3_uri_parameter(const char *zFilename, const char *zParam
int sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault
sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64
这些是对 VFS 实现有用的实用程序例程,用于检查数据库文件是否为包含特定查询参数的 URI,如果是,则获取该查询参数的值。
如果当 xOpen() 的 flags 参数设置了一个或多个 SQLITE_OPEN_URI 或 SQLITE_OPEN_MAIN_DB 位并且 P 是查询参数的名称时,F 是传递到 VFS 实现的 xOpen()方法中的数据库文件名指针,则 sqlite3_uri_parameter F,P)返回 P 参数的值,如果它存在,则返回 P 的值;如果 P 没有作为查询参数出现在F上,则返回 NULL 指针。如果 P 是查询参数 F 没有显式值,则 sqlite3_uri_parameter(F,P)返回一个指向空字符串的指针。
sqlite3_uri_boolean(F,P,B)例程假定 P 是一个布尔参数,并根据P的值返回 true(1)或 false(0).sqlite3_uri_boolean(F,P,B) 例程返回true(1)如果查询参数 P 的值在任何情况下是“是”,“是”或“开”中的一个,或者如果该值以非零数字开始。如果查询参数P的值在任何情况下都是 “no”,“false” 或 “off” 之一,或者如果值以数字零开始,则 sqlite3_uri_boolean(F,P,B)例程返回 false(0)。如果P不是F上的查询参数,或者 P 的值不符合上述任何一个,则 sqlite3_uri_boolean(F,P,B)返回(B!= 0)。
sqlite3_uri_int64(F,P,D)例程将 P的值转换为64位有符号整数并返回该整数,如果P不存在则返回 D. 如果 P 的值不是整数,则返回零。
如果F是一个 NULL 指针,则 sqlite3_uri_parameter(F,P)返回 NULL,并且 sqlite3_uri_boolean(F,P,B)返回 B. 如果 F 不是一个 NULL 指针,并且不是 SQLite 传入 xOpen VFS 的数据库文件路径名指针方法,那么这个例程的行为是不确定的,可能是不可取的。