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

SQLite C 介面

自動載入靜態連結的擴充功能

int sqlite3_auto_extension(void(*xEntryPoint)(void));

此介面會針對建立的每個新資料庫連線呼叫 xEntryPoint() 函式。這裡的想法是,xEntryPoint() 作為一個靜態連結的 SQLite 擴充功能 的進入點,該擴充功能將自動載入到所有新的資料庫連線中。

儘管函式原型顯示 xEntryPoint() 不接受任何參數並返回 void,但 SQLite 會以三個參數呼叫 xEntryPoint() 並期望得到一個整數結果,如同進入點的簽章如下所示:

   int xEntryPoint(
     sqlite3 *db,
     const char **pzErrMsg,
     const struct sqlite3_api_routines *pThunk
   );

如果 xEntryPoint 常式遇到錯誤,它應該讓 *pzErrMsg 指向適當的錯誤訊息(透過 sqlite3_mprintf() 取得),並返回適當的 錯誤碼。SQLite 確保在呼叫 xEntryPoint() 之前 *pzErrMsg 為 NULL。SQLite 會在 xEntryPoint() 返回後,對 *pzErrMsg 呼叫 sqlite3_free()。如果任何 xEntryPoint() 返回錯誤,則觸發 xEntryPoint() 的 sqlite3_open()sqlite3_open16()sqlite3_open_v2() 呼叫將會失敗。

使用已在自動擴充功能列表中的進入點 X 呼叫 sqlite3_auto_extension(X) 是一個無害的空操作。對於每個開啟的資料庫連線,任何進入點都不會被呼叫超過一次。

另請參閱:sqlite3_reset_auto_extension()sqlite3_cancel_auto_extension()

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