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

SQLite C 介面

資料庫連線用戶端資料

void *sqlite3_get_clientdata(sqlite3*,const char*);
int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*));

這些函式用於將一個或多個具名指標與資料庫連線關聯。呼叫 sqlite3_set_clientdata(D,N,P,X) 會使用名稱 N 將指標 P 附加到資料庫連線 D。後續呼叫 sqlite3_get_clientdata(D,N) 將返回指標 P 的副本,如果先前沒有使用相同的 D 和 N 值呼叫 sqlite3_set_clientdata(),則返回 NULL 指標。名稱使用 strcmp() 進行比較,因此區分大小寫。

如果 P 和 X 皆非 NULL,則解構器 X 會在下列情況首次發生時以參數 P 呼叫:

除了在適當的時間呼叫用戶端資料的解構器之外,SQLite 不會對用戶端資料執行任何其他操作。用戶端資料的預期用途是提供一種機制,讓包裝程式庫可以儲存有關 SQLite 資料庫連線的其他資訊。

可以附加到單個資料庫連線的不同用戶端資料指標(具有不同的名稱)的數量沒有限制(除了可用記憶體之外)。然而,此實作針對僅有一個或兩個不同用戶端資料名稱的情況進行了最佳化。不鼓勵應用程式和包裝程式庫各自使用多個用戶端資料名稱。

沒有辦法列舉與資料庫連線關聯的用戶端資料指標。N 參數可以被視為一個密鑰,只有知道密鑰的程式碼才能存取關聯的資料。

安全性警告:這些介面不應在腳本語言或其他可能讓攻擊者呼叫它們的情況下公開。任何可以呼叫這些介面的代理程式都可能控制該程序。

資料庫連線用戶端資料僅適用於 SQLite 3.44.0 (2023-11-01) 及更高版本。

另請參閱:sqlite3_set_auxdata()sqlite3_get_auxdata()

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