Qt SQL -配置连接到数据库

Qt SQL - Configuring Connection to Database

本文关键字:数据库 连接 配置 SQL Qt      更新时间:2023-10-16

我已经放弃了为Qt 5.0库配置MYSQL驱动程序的尝试,我将使用目前唯一可用的驱动程序- "QSQLITE"。

我一直在努力让这个工作相当一段时间,并尝试了在类似的帖子中提到的一切:Select from SQLite with Qt

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName(SQL_SERVER);
db.setPort(SQL_PORT);
db.setDatabaseName(SQL_DATABASE);
db.setUserName(SQL_USER);
db.setPassword(SQL_PASS);
bool dbSuccess = db.open();
QList<QString> deviceNames;
QString deviceName;
qDebug() << db;
if(dbSuccess){
    QSqlQuery query;
    qWarning("We made it into the DB");
    query.exec("SELECT device_name FROM tbl_device");
    while (query.next() ){
        qDebug() << query.value(1).toString();
       // deviceNames.append(deviceName);
        //qDebug() << "Test: "<< deviceName;
    }
}
else if(!db.open()){
    qWarning("Database failed to load!");
}

Where SQL_Server = 192.168.1.100

我从应用程序得到以下qDebug输出:

QSqlDatabase(driver=""QSQLITE"", database=""homelogic"", host=""hendrenserver"", port=3306, user=""homelogic"",      open=true) 
We made it into the DB

输出表明数据库连接是有效的,但是如果我将服务器名更改为完全错误的东西,例如"xlkcjox"或其他随机密钥,则会得到相同的输出。我遗漏了什么?我觉得这应该比较容易。

请建议!

当为qt使用sqlite驱动程序时,数据库名是磁盘上的一个文件,与主机名无关。这就是sqlite的工作原理。它不需要主机,只需要文件名

我重新审视这个问题是为了分享我今天遇到的一个非常有用的链接。我使用Qt 4.8.4和QODBC驱动程序达成了解决方案。由于需要使用QSerialPort和项目bug,我今天更新到5.0.1。在重建我的ODBC插件时,我发现了这个链接:http://seppemagiels.com/blog/create-mysql-driver-qt5-windows。不到20分钟,我就完成了我最初想要的QMYSQL驱动程序。我希望这对其他人有所帮助!