0

我已经放弃尝试为 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!");
}

其中 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”或其他随机键 - 我会得到相同的输出。我在这里想念什么?我觉得这应该相对容易。

请指教!

4

2 回答 2

2

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

于 2013-01-20T08:16:15.840 回答
0

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

于 2013-02-28T03:52:01.817 回答