0
我有一個奇怪的問題。無法添加功能sqlite /寫在c + +/Qt。 函數應該做Utf-8符號的上限;SQLite和UTF8
this->db = QSqlDatabase::addDatabase("QSQLITE");
this->db.setDatabaseName(db);
this->db.open();
QVariant v = this->db.driver()->handle();
sqlite3 *handler = *static_cast<sqlite3 **>(v.data());
sqlite3_create_function(handler, "myUpper", 1, SQLITE_ANY, NULL, myFunc, NULL, NULL)
而且功能:
void myFunc(sqlite3_context * ctx, int argc, sqlite3_value ** argv)
{
if(argc != 1) return;
QString str;
switch(sqlite3_value_type(argv[0]))
{
case SQLITE_NULL:
{
sqlite3_result_text(ctx, "NULL", 4, SQLITE_STATIC);
break;
}
case SQLITE_TEXT:
{
QString wstr((char*)sqlite3_value_text16(argv[0]));
wstr = wstr.toUpper();
sqlite3_result_text16(ctx, wstr.toStdString().c_str(), wstr.size() , SQLITE_TRANSIENT);
break;
}
default:
sqlite3_result_text(ctx, "NULL", 4, SQLITE_STATIC);
break;
}
}
這是沒有解決的問題。程序突然關機,然後我試圖打開基地和初始化功能。 – pod2metra
我在編輯我的答案,添加一些更多信息。 –
這是解決不了的問題。問題和原來一樣。 – pod2metra