1.问题原由
需要修改sqlite的一些配置和数据库操作,eg. 查询THREADSAFE等编译选项。但是用的qt封装的QSqlDatabase类。无法执行sqlite源码中的一些原生函数。后面发现可以通过执行PRAGMA的一些语句来达到目的。
2.参考资料和使用方法
最一手的资料当然是官方的资料
https://www.sqlite.org/pragma.html
3.使用示例,以Qt为例
QSqlQuery q(QSqlDatabase::database("db"));
QVERIFY2(q.exec("PRAGMA compile_options"),
q.lastError().text().toLatin1().constData());
bool hasCodec = false;
while(q.next())
{
qDebug() << m_qry->value(0).toString();
}
//sqlite源码中部分接口函数
SQLITE_API int sqlite3_threadsafe(void);
SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff);