Пишу приложение под восьмеркой. Использую MariaDB. Через HeidiSQL(клиент к MySQL) создал базу данных. В своем приложении успешно подключаюсь к ней, успешно создаю таблицы и работаю с ними. Хочу из своего приложения создавать базу данных. Пытаюсь сделать это следующим образом, но query запрос всегда возвращает false и выводит в дебаг "MySQL error: " "MySQL error code:-1"Как это нужно делать?
QSqlDatabase db_test = QSqlDatabase::addDatabase("QMYSQL");
db_test.setPort(3306);
db_test.setHostName("127.0.0.2");
db_test.setUserName("root");
db_test.setPassword("admin");
QSqlQuery query(db_test);
query.prepare( "CREATE DATABASE IF NOT EXISTS testDb");
if(query.exec()){
qDebug()<<"It's OK";
}
else{
qDebug()<<"MySQL error:" + query.lastError().text();
qDebug()<<"MySQL error code:"+ QString::number(query.lastError().number());
}
В принципе, получается и без db.setDatabaseName("mysql")
Пробовал вот такой код:
Dialog::Dialog(QWidget *parent) : QDialog(parent) {
DB = QSqlDatabase::addDatabase("QMYSQL");
DB.setHostName("192.168.1.18");
DB.setUserName("root");
DB.setPassword("gfhjkm1");
if(DB.open()) {
QSqlQuery Query(DB);
if (Query.exec("CREATE DATABASE IF NOT EXISTS blablabla"))
qDebug() << "Ok"; else qDebug() << "Error query";
} else qDebug() << "Error open";
}
Для теста запустил тут:
Не используйте prepare. Используйте exec, как тут
void MainWindow::creadb()
{
QString db_conti = "conti1";
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mysql");
db.setUserName("root");
db.setPassword(ui->password->text());
if (db.open())
{
QSqlQuery query;
query.exec("create database "+db_conti);
qWarning()<<query.lastError();
... code for creating tables, views and users...
db.close();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день! Пишу простой класс на C++ при компиляции наткнулся на вот такую вот странную проблемуЯ мало что разбираю в C++, но вот мой
Делаю задания по книге Бьярне Страуструпа "Программирование: принципы и практика с использованием C++, 2-е издание"Во главе 4, задании 16 надо...