-1

包括“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 正在检查问题的解决方案...谁能帮助我?

4

2 回答 2

0

试试这个,而不是你的两myquery行:

    QSqlQuery q(db);
    q.exec("INSERT INTO phone_table(name_) VALUES ('asdhjs')");
于 2012-09-26T12:42:12.323 回答
0

您需要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();
}
于 2012-09-26T12:30:49.737 回答