int sqlite3_enable_shared_cache(int);
此例程启用或禁用在同一数据库的连接之间共享数据库缓存和模式数据结构。如果参数为真,则启用共享;如果参数为假,则禁用共享。
如果 SQLite 使用-DSQLITE_OMIT_SHARED_CACHE编译,则会省略此接口。-DSQLITE_OMIT_SHARED_CACHE编译时选项建议使用,因为不建议使用共享缓存模式。
缓存共享是在整个进程中启用和禁用的。这是从 SQLite 3.5.0 版本(2007-09-04)开始的变化。在 SQLite 的早期版本中,共享是针对每个线程分别启用或禁用的。
此接口设置的缓存共享模式会影响随后对sqlite3_open()、sqlite3_open_v2()和sqlite3_open16()的所有调用。现有的数据库连接将继续使用在打开时有效的共享模式。
如果成功启用或禁用共享缓存,则此例程返回SQLITE_OK。否则,将返回错误代码。
默认情况下,共享缓存处于禁用状态。建议保持这种状态。换句话说,不要使用此例程。继续提供此接口是为了向后兼容,但不建议使用。任何使用共享缓存的行为都不建议。如果必须使用共享缓存,建议仅使用sqlite3_open_v2()接口和SQLITE_OPEN_SHAREDCACHE标志为各个数据库连接启用共享缓存。
注意:此方法在 MacOS X 10.7 和 iOS 5.0 版本上被禁用,并且始终返回 SQLITE_MISUSE。在这些系统上,应通过使用sqlite3_open_v2()和SQLITE_OPEN_SHAREDCACHE为每个数据库连接启用共享缓存模式。
在写入 32 位整数为原子的处理器上,此接口是线程安全的。
另请参见:SQLite 共享缓存模式