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')");
Другие вопросы по тегам