我从GitHub下载了SQLite项目的官方数据库。我试图编译这个项目,但收到一个错误:“无法打开文件'sqlite3.lib'”。
我正在使用Qt 5.6.0。
编译输出:
LINK : fatal error LNK1104: cannot open file 'sqlite3.lib'
jom: C:\Users\loddy\Desktop\sqDebug\src\Makefile.Debug [debug\sqlitebrowser.exe] Error 1104
jom: C:\Users\loddy\Desktop\sqDebug\src\Makefile [debug] Error 2
jom: C:\Users\loddy\Desktop\sqDebug\Makefile [sub-src-make_first] Error 2
20:11:18: The process "C:\Qt\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project sqlitebrowser (kit: Desktop Qt 5.6.0 MSVC2015 64bit)
When executing step "Make"
此外,项目中还有sqlite3.c和sqlite3.h文件。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
Qt能够访问SQLite数据库。您可以编写如下代码:
#include <QtCore/QCoreApplication>
#include <QtSql>
#include <qDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (!db.open()) {
qDebug() << db.lastError();
qFatal("failed to connect database.");
}
qDebug() << "database connected";
QString sql = QString("insert into tb_test values('John', 10)");
qDebug() << "sql: " << sql;
QSqlQuery query(sql, db); // query will be automatically executed if sql is not an empty string, see Qt document for details
return a.exec();
}
在上面的代码中,我假设数据库test.db
有一个名为tb_test
的表。它有两个字段name
,即varchar,age
,即int。
请确保您的项目中已加载Sql模块。
仅供参考,Online Qt Documentation,或者您可以在Qt智能助理中按类别名称进行搜索,这是由Qt在您的计算机上安装的。