Small. Fast. Reliable.
Choose any three.

SQLite C接口

需要排序规则的回调

int sqlite3_collat​​ion_needed(
  sqlite3 *,
  空白*,
  void(*)(void *,sqlite3 *,int eTextRep,const char *)
);
int sqlite3_collat​​ion_needed16(
  sqlite3 *,
  空白*,
  void(*)(void *,sqlite3 *,int eTextRep,const void *)
);

为了避免在使用数据库之前必须注册所有排序规则序列,只要需要未定义的排序规则序列,就可以在要调用的数据库连接中注册一个回调函数 。

如果使用sqlite3_collat​​ion_needed()API注册了该函数,则会将未定义的排序规则序列的名称传递为以UTF-8编码的字符串。如果使用sqlite3_collat​​ion_needed16(),则名称将以机器本机字节顺序作为UTF-16传递。调用这两个函数将替换现有的归类所需的回调。

调用回调时,传递的第一个参数是第二个参数到sqlite3_collat​​ion_needed()或sqlite3_collat​​ion_needed16()的副本。第二个参数是数据库连接。第三个参数是SQLITE_UTF8SQLITE_UTF16BESQLITE_UTF16LE之一,指示所需的排序规则序列函数的最理想形式。第四个参数是所需排序规则序列的名称。

回调函数应使用sqlite3_create_collat​​ion()sqlite3_create_collat​​ion16()sqlite3_create_collat​​ion_v2()注册所需的排序规则 。

另请参见 对象常量函数的列表