QT sql программирование
Включите "mythread.h
mythread::mythread(int ID, QObject *parent) :
QThread(parent)
{
this->socketDescriptor = ID;
db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("127.0.0.1");
db.setDatabaseName("mydsn");
if (db.open())
{
qDebug() << "DB is connected!";
myquery->clear();
myquery->exec("INSERT INTO phone_table(name_) VALUES ('asdhjs')");
db.close();
}
else
{
qDebug() << "Db is not connected!" << db.lastError();
}
}
Когда я вставляю данные, я получаю ошибку Myserver.exe Myserver.exe перестал работать Windows проверяет решение проблемы... Кто-нибудь может мне помочь?
2 ответа
Вы хотите, чтобы инициализировать ваш myquery
Объект с вашей базой данных.
Попробуйте изменить свой код на это.
if (db.open())
{
qDebug() << "DB is connected!";
// Allocate the query object.
myquery = new QSqlQuery( db );
myquery->clear();
myquery->exec("INSERT INTO phone_table(name_) VALUES ('asdhjs')");
db.close();
}
else
{
qDebug() << "Db is not connected!" << db.lastError();
}
Попробуйте это вместо двух myquery
линии:
QSqlQuery q(db);
q.exec("INSERT INTO phone_table(name_) VALUES ('asdhjs')");