Я отказался от попытки настроить драйвер MYSQL для библиотеки Qt 5.0, я собираюсь использовать единственный доступный мне драйвер — «QSQLITE».
Я пытался заставить это работать в течение достаточно долгого времени и попробовал все, что упомянуто в подобных постах:
Выбрать из SQLite с помощью 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» или другие случайные ключи — я получаю тот же вывод. Что мне здесь не хватает? Я чувствую, что это должно быть относительно легко.
Пожалуйста, порекомендуйте!
При использовании драйвера sqlite для qt имя базы данных — это файл на вашем диске, независимо от имени хоста. Вот как работает sqlite. Ему не нужен хост, просто имя файла.
Я возвращаюсь к этому вопросу, чтобы поделиться очень полезной ссылкой, с которой я столкнулся сегодня. Я достиг решения, используя Qt 4.8.4 и драйвер QODBC. Из-за необходимости использовать QSerialPort и ошибки проекта, я сегодня обновился до 5.0.1. Работая над перестройкой моего плагина ODBC, я нашел эту ссылку: http://seppemagiels.com/blog/create-mysql-driver-qt5-windows.
В течение 20 минут у меня было то, что я изначально хотел, драйвер QMYSQL, работающий. Я надеюсь, что это помогает другим!