-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 has stopped working Windows が問題の解決策をチェックしています... 誰か助けてくれませんか?

4

2 に答える 2

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 に答える
0

myquery2行の代わりにこれを試してください:

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