用sqlite3 C接口sqlite3_prepare16创建表

时间:2022-06-01 17:03:56
请教,可不可以用sqlite3 C接口sqlite3_prepare16准备创建表的SQL语句,不用sqlite3_exec因为用的是wstring作为SQL,我的运行不成功,请高手帮忙,写出示例代码

5 个解决方案

#1


你的代码是什么?不成功的表现是什么?

#2


std::wstring strSQL; //构造一个创建数据库的SQL(Craete Table...)
sqlite3_stmt *stmt;
const void *tail = NULL;
sqlite3_prepare16(&db, strSQL.c_str(), 100, &stmt, &tail);
这样返回SQLITE_ERROR

#3


你的strSQL的长度是100?

#4


既然返回SQLITE_ERROR,可以把error string打出来,看看具体什么错。

#5


解决了sqlite3_prepare16();可以准备宽字符的SQL语句,第三个参数是字节数,而不是字符数,所以要字符数乘2

#1


你的代码是什么?不成功的表现是什么?

#2


std::wstring strSQL; //构造一个创建数据库的SQL(Craete Table...)
sqlite3_stmt *stmt;
const void *tail = NULL;
sqlite3_prepare16(&db, strSQL.c_str(), 100, &stmt, &tail);
这样返回SQLITE_ERROR

#3


你的strSQL的长度是100?

#4


既然返回SQLITE_ERROR,可以把error string打出来,看看具体什么错。

#5


解决了sqlite3_prepare16();可以准备宽字符的SQL语句,第三个参数是字节数,而不是字符数,所以要字符数乘2