首页 > 解决方案 > 将 QString 传递给 sqlite3_open 的编码问题

问题描述

我正在尝试将sqlite3库与 Qt 一起使用。

我将我的数据库路径存储在QString. 由于sqlite3_open想要 a const char*,我尝试执行以下操作:

const QString qpath = whateverGivesIt();
const char* path = qpath.toUtf8().constData();
sqlite3_open(path, &connection);

收效甚微。如果我使用

qDebug() << qpath;
qDebug() << path;

他们都给了我相同的(正确的)路径。但 SQLite3 似乎不接受它,因为我看到正在创建一个新文件:hЮUUU. 此外,我连接的数据库显然是空的,因为 SQLite3 似乎正在连接到一个新文件。

有任何想法吗?请建议(:

标签: c++qtsqlite

解决方案


Qt 有自己的 sqlite 实现,它与 QObjects 检查以稳定的方式工作:http: //katecpp.github.io/sqlite-with-qt/


推荐阅读