小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

檔案開啟操作旗標

#define SQLITE_OPEN_READONLY         0x00000001  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_READWRITE        0x00000002  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_CREATE           0x00000004  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_DELETEONCLOSE    0x00000008  /* VFS only */
#define SQLITE_OPEN_EXCLUSIVE        0x00000010  /* VFS only */
#define SQLITE_OPEN_AUTOPROXY        0x00000020  /* VFS only */
#define SQLITE_OPEN_URI              0x00000040  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_MEMORY           0x00000080  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_MAIN_DB          0x00000100  /* VFS only */
#define SQLITE_OPEN_TEMP_DB          0x00000200  /* VFS only */
#define SQLITE_OPEN_TRANSIENT_DB     0x00000400  /* VFS only */
#define SQLITE_OPEN_MAIN_JOURNAL     0x00000800  /* VFS only */
#define SQLITE_OPEN_TEMP_JOURNAL     0x00001000  /* VFS only */
#define SQLITE_OPEN_SUBJOURNAL       0x00002000  /* VFS only */
#define SQLITE_OPEN_SUPER_JOURNAL    0x00004000  /* VFS only */
#define SQLITE_OPEN_NOMUTEX          0x00008000  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_FULLMUTEX        0x00010000  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_SHAREDCACHE      0x00020000  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_PRIVATECACHE     0x00040000  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_WAL              0x00080000  /* VFS only */
#define SQLITE_OPEN_NOFOLLOW         0x01000000  /* Ok for sqlite3_open_v2() */
#define SQLITE_OPEN_EXRESCODE        0x02000000  /* Extended result codes */

這些位元值是用於 sqlite3_open_v2() 介面的第三個參數,以及 sqlite3_vfs.xOpen 方法的第四個參數。

只有標記為「適用於 sqlite3_open_v2()」的旗標才能用作 sqlite3_open_v2() 介面的第三個參數。其他旗標過去在 sqlite3_open_v2() 中會被忽略,但未來的 SQLite 版本可能會更改,如果傳入任何不允許的位元到 sqlite3_open_v2() 中,則會引發錯誤。應用程式不應依賴過去的行為。

特別要注意的是,將 SQLITE_OPEN_EXCLUSIVE 旗標傳入 sqlite3_open_v2() 並*不會*導致底層資料庫檔案使用 O_EXCL 開啟。過去將 SQLITE_OPEN_EXCLUSIVE 傳入 sqlite3_open_v2() 不會產生任何作用,並且在未來的 SQLite 版本中可能會變成錯誤。

另請參閱 物件常數函式 列表。