int sqlite3session_create( sqlite3 * db,/ *数据库句柄* / const char * zDb,/ * db的名称(例如“ main”)* / sqlite3_session ** ppSession / * OUT:新的会话对象* / );
创建一个附加到数据库句柄db的新会话对象。如果成功,则将指向新对象的指针写入* ppSession并返回SQLITE_OK。如果发生错误,则将* ppSession设置为NULL,并返回一个SQLite错误代码(例如SQLITE_NOMEM)。
可以创建附加到单个数据库句柄的多个会话对象。
使用此函数创建的会话对象应该在关闭与其关联的数据库句柄之前使用sqlite3session_delete()函数删除 。如果在删除会话对象之前关闭了数据库句柄,则未定义调用任何会话模块函数(包括会话对象上的sqlite3session_delete())的结果。
由于会话模块使用sqlite3_preupdate_hook() API,因此应用程序无法在连接了一个或多个会话对象的数据库句柄上注册更新前挂钩。也无法创建连接到数据库句柄的会话对象,该会话对象已经为其定义了更新前挂钩。尝试任何一种操作的结果都是不确定的。
会话对象将用于为数据库zDb中的表创建变更集,其中zDb是“ main”或“ temp”,或者是附加数据库的名称。创建会话对象时,如果数据库zDb没有连接到数据库,这不是错误。