Low-Level Control Of Database Files
数据库文件的低级控制
int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*
sqlite3_file_control()接口直接调用与第二个参数标识的特定数据库关联的 sqlite3_io_methods对象的 xFileControl 方法。主数据库的数据库名称为 “main”,TEMP 数据库的 “temp” 或使用 ATTACH SQL 命令添加的数据库的 AS 关键字后面显示的名称。可以使用 NULL 指针代替 “main” 来引用主数据库文件。该例程的第三个和第四个参数直接传递给 xFileControl 方法的第二个和第三个参数。xFileControl 方法的返回值成为此例程的返回值。
op 参数的 SQLITE_FCNTL_FILE_POINTER 值会将指向底层 sqlite3_file 对象的指针写入第4个参数指向的空间。 SQLITE_FCNTL_FILE_POINTER 大小写是一个短路径,它并不实际调用基础 sqlite3_io_methods.xFileControl 方法。
如果第二个参数(zDbName)与任何打开的数据库文件的名称不匹配,则返回 SQLITE_ERROR。此错误代码不会被记住,并且不会被 sqlite3_errcode() 或 sqlite3_errmsg() 调用。底层的 xFileControl 方法也可能返回 SQLITE_ERROR。无法从基础 xFileControl 方法中区分不正确的 zDbName 和 SQLITE_ERROR 返回。
另请参阅:SQLITE_FCNTL_LOCKSTATE
另请参见对象,常量和函数的列表。