小巧、快速、可靠。
擇三。

SQLite C 介面

需要排序時所呼叫的回呼函式 (Collation Needed Callbacks)

int sqlite3_collation_needed(
  sqlite3*,
  void*,
  void(*)(void*,sqlite3*,int eTextRep,const char*)
);
int sqlite3_collation_needed16(
  sqlite3*,
  void*,
  void(*)(void*,sqlite3*,int eTextRep,const void*)
);

為了避免在使用資料庫之前必須註冊所有排序序列 (collation sequence),可以向資料庫連線註冊單一回呼函式,以便在需要未定義的排序序列時呼叫。

如果使用 sqlite3_collation_needed() API 註冊該函式,則會以 UTF-8 編碼的字串形式傳遞未定義排序序列的名稱。如果使用 sqlite3_collation_needed16(),則會以機器原生位元組順序的 UTF-16 形式傳遞名稱。呼叫任一函式都會取代現有的 collation-needed 回呼函式。

呼叫回呼函式時,傳遞的第一個參數是 sqlite3_collation_needed() 或 sqlite3_collation_needed16() 的第二個參數的副本。第二個參數是資料庫連線。第三個參數是 SQLITE_UTF8SQLITE_UTF16BESQLITE_UTF16LE 之一,表示所需排序序列函式最理想的形式。第四個參數是所需排序序列的名稱。

回呼函式應該使用 sqlite3_create_collation()sqlite3_create_collation16()sqlite3_create_collation_v2() 註冊所需的排序方式。

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