在线文档教程
Sqlite
C界面 | C Interface

Virtual Table Object

Virtual Table Object

struct sqlite3_module { int iVersion; int (*xCreate)(sqlite3*, void *pAux, int argc, const char *const*argv, sqlite3_vtab **ppVTab, char** int (*xConnect)(sqlite3*, void *pAux, int argc, const char *const*argv, sqlite3_vtab **ppVTab, char** int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info* int (*xDisconnect)(sqlite3_vtab *pVTab int (*xDestroy)(sqlite3_vtab *pVTab int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor int (*xClose)(sqlite3_vtab_cursor* int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, int argc, sqlite3_value **argv int (*xNext)(sqlite3_vtab_cursor* int (*xEof)(sqlite3_vtab_cursor* int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 * int (*xBegin)(sqlite3_vtab *pVTab int (*xSync)(sqlite3_vtab *pVTab int (*xCommit)(sqlite3_vtab *pVTab int (*xRollback)(sqlite3_vtab *pVTab int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), void **ppArg int (*xRename)(sqlite3_vtab *pVtab, const char *zNew /* The methods above are in version 1 of the sqlite_module object. Those ** below are for version 2 and greater. */ int (*xSavepoint)(sqlite3_vtab *pVTab, int int (*xRelease)(sqlite3_vtab *pVTab, int int (*xRollbackTo)(sqlite3_vtab *pVTab, int };

这种结构有时被称为“虚拟表模块”,它定义了虚拟表的实现。该结构主要由模块的方法组成。

通过填充此结构的持久实例并将指向该实例的指针传递给sqlite3_create_module()或sqlite3_create_module_v2()来创建虚拟表模块。注册保持有效,直到它被替换为不同的模块或数据库连接关闭。在向任何数据库连接注册时,此结构的内容不得更改。

SQLite is in the Public Domain.