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

SQLite C 介面

在交易過程中將快取寫入磁碟

int sqlite3_db_cacheflush(sqlite3*);

當在資料庫連線 D 上開啟寫入交易時,若呼叫 sqlite3_db_cacheflush(D) 介面,則分頁快取中所有未使用的髒頁都會寫入磁碟。如果由作用中 SQL 陳述式建立的資料庫游標正在從中讀取,或是它是資料庫檔案的第 1 頁(第 1 頁始終「使用中」),則髒頁可能正在使用中。sqlite3_db_cacheflush(D) 介面會清除所有結構描述的快取 — 「main」、「temp」以及任何附加的資料庫。

如果此函式在將髒頁寫入磁碟之前需要取得額外的資料庫鎖定,它就會執行此操作。如果無法立即取得這些鎖定,並且已設定忙碌處理常式回呼,則會以一般方式呼叫它。如果仍然無法取得所需的鎖定,則會略過該資料庫,並嘗試清除屬於下一個(如果有)資料庫的任何髒頁。如果因為無法取得鎖定而略過任何資料庫,但沒有發生其他錯誤,則此函式會傳回 SQLITE_BUSY。

如果在將髒頁寫入磁碟時發生任何其他錯誤(例如 IO 錯誤或記憶體不足情況),則會放棄處理,並立即將 SQLite 錯誤碼傳回給呼叫者。

否則,如果沒有發生錯誤,sqlite3_db_cacheflush() 會傳回 SQLITE_OK。

此函式不會設定由 sqlite3_errcode()sqlite3_errmsg() 函式傳回的資料庫控制代碼錯誤碼或訊息。

另請參閱物件常數函式的清單。