在一些指南的幫助下,我用gcc成功編譯了sqlite3的ICU擴展,並且獲得了libSqliteIcu.so,沒有顯示任何錯誤。然後我將這個lib複製到/ usr/lib文件夾。之後,我通過終端和「.load libSqliteIcu.so」然後「icu_load_collation(」hr_HR「,」CROATIAN「);」終端上全部沒有錯誤或備註發送sqlite。「查詢結果現在已正確排序Sqlite3,c-api,icu排序規則
什麼我現在shold做的是能夠通過C-API使用克羅地亞整理
我嘗試:
sqlite3_stmt *selStmt;
const char *zSqlSelect = "SELECT sif, name, kat FROM mytable WHERE naziv LIKE 'mala%' ORDER BY naziv COLLATE CROATIAN;";
if (sqlite3_prepare_v2(db, zSqlSelect, -1, &selStmt, NULL) == SQLITE_OK)
{
int cols = sqlite3_column_count(selStmt);
int result = 0;
while(true)
{
result = sqlite3_step(selStmt);
if(result == SQLITE_ROW)
{
for(int col = 0; col < cols; col++)
{
printf("%s %s \t", sqlite3_column_name(selStmt,col), "=");
printf("%s\n", sqlite3_column_text(selStmt, col));
}
}
else break;
}
sqlite3_finalize(selStmt);
}
else
printf("db error: %s\n", sqlite3_errmsg(db));
錯誤信息爲「DB錯誤:沒有這樣的排序規則序列:克羅地亞語」。
什麼我錯過了以及如何通過給定sqlite3排序propery通過c-api整理,就像我通過命令行得到的一樣?