Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SQLITE insert命令在Qt中显示SIGSEGV错误_C++_Qt_Sqlite - Fatal编程技术网

C++ SQLITE insert命令在Qt中显示SIGSEGV错误

C++ SQLITE insert命令在Qt中显示SIGSEGV错误,c++,qt,sqlite,C++,Qt,Sqlite,这是我显示SIGSEGV错误的代码。但是我找不到我的错误在哪里。当我将代码完全复制到SQLite并运行它时,它就工作了。但它显示了Qt IDE中的SIGSEGV错误。 这是我的代码: bool DB::InsertUserAuthenticate(int id,int Admin,int Active,int AT_ID,int UI_ID,QString UA_Data) { QSqlQuery q; //begin transaction /*insert data

这是我显示SIGSEGV错误的代码。但是我找不到我的错误在哪里。当我将代码完全复制到SQLite并运行它时,它就工作了。但它显示了Qt IDE中的SIGSEGV错误。
这是我的代码:

bool DB::InsertUserAuthenticate(int id,int Admin,int Active,int AT_ID,int UI_ID,QString UA_Data)
{
    QSqlQuery q;
    //begin transaction
    /*insert data if the exact data not repeated in table*/
    q.prepare("BEGIN; INSERT INTO UserInfo(UI_ID,UI_Admin,UI_Active)"
              " SELECT :id,:admin,:active"
              " WHERE NOT EXISTS(SELECT 1 FROM UserInfo "
              " WHERE UI_ID=:id AND UI_Admin=:admin AND UI_Active=:active);"
              " INSERT INTO UserAuthenticate"
              " (AT_ID,UI_ID,UA_Data,UA_Active)"
              " VALUES (:atid,:uiid,:uadata,:active);"
              "COMMIT;");
             /* " VALUES (:id,:admin,:active);");*/
    q.bindValue(":id", id);
    q.bindValue(":admin", Admin);
    q.bindValue(":active", Active);
    q.bindValue(":atid", AT_ID);
    q.bindValue(":uiid",UI_ID);
    q.bindValue(":uadata",UA_Data);

    if(q.exec())
    {
        q.exec("COMMIT;");//finished the transaction
        return true;
    }
    else
    {
        q.exec("ROLLBACK;");//bad finished. should rool back
        msg=q.lastError().text();
    }
    return false;
}

这里没有给出SIGSEGV,您使用的是什么操作系统?您在哪一行获得SIGSEGV?我将使用
QSqlDatabase::database().transaction()
QSqlDatabase::database().commit(),
QSqlDatabase::database().rollback()
处理来自Qt的事务。@Mike:q.lasterror()有那个错误。我的操作系统是Linux。什么是msg?它在哪里定义?msg是全局值。在字符串类型中。这里没有给出SIGSEGV,您使用的是什么操作系统?您在哪一行获得SIGSEGV?我将使用
QSqlDatabase::database().transaction()
QSqlDatabase::database().commit(),
QSqlDatabase::database().rollback()
处理来自Qt的事务。@Mike:q.lasterror()有那个错误。我的操作系统是Linux。什么是msg?它在哪里定义?msg是全局值。字符串类型。