SQLite C 接口
整理需要回调
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*) );
为了避免在可以使用数据库之前必须注册所有归类序列,可以向 数据库连接注册一个回调函数,以便在需要未定义的归类序列时调用。
如果该函数是使用 sqlite3_collation_needed() API 注册的,那么它将以未定义的排序规则序列的名称作为以 UTF-8 编码的字符串传递。如果使用 sqlite3_collation_needed16() ,名称将以机器本机字节顺序作为 UTF-16 传递。对任一函数的调用都会替换现有的需要排序规则的回调。
调用回调时,传递的第一个参数是 sqlite3_collation_needed() 或 sqlite3_collation_needed16() 的第二个参数的副本。第二个参数是数据库连接。第三个参数是SQLITE_UTF8、SQLITE_UTF16BE或SQLITE_UTF16LE 之一,指示所需的排序规则函数的最理想形式。第四个参数是所需归类序列的名称。
回调函数应使用sqlite3_create_collation()、sqlite3_create_collation16()或 sqlite3_create_collation_v2()注册所需的排序 规则。