Inside my small application, I'm using this database frequently to put data. It's working fine but sometime segmentation fault at line db.open() or sometime db.close().
I'm getting free() unsorted chunks:some adress. please any one help.Thanks.
QSqlDatabase db;
if (QSqlDatabase::contains())
{
db = QSqlDatabase::database(QLatin1String(QSqlDatabase::defaultConnection), false);
}
else
{
db = QSqlDatabase::addDatabase( "QSQLITE" );
}
db.setDatabaseName( "Database/database.db" );
QSqlQuery qry;
if(!db.open())
{
// qDebug()<< db.lastError();
// qFatal("Failed to connect.");
cout<<"database file path problem";
}
if(check == "y")
{
qry.prepare( "INSERT INTO serl_num (SERIAL,RESULT)" "VALUES (?,?)");
qry.addBindValue(_serialNo);
qry.addBindValue("Abnormal missing file");
}
if(check == "n")
{
qry.prepare("select * from serl_num where serial=?");
qry.addBindValue(_serialNo);
bool ok=qry.exec();
if(ok && qry.first())
{
qDebug( "serial_number is already in database" );
}
else
{
QStringList boardNamefile = QString::fromStdString(_boardFile).split('/');
QStringList boardLayerName = QString::fromStdString(layer).split('.');
qry.prepare( "INSERT INTO serl_num (BOARD_NAME,LAYER_NAME,SERIAL,STATUS)" "VALUES (?,?,?,?)");
qry.addBindValue(boardNamefile.last());
qry.addBindValue(boardLayerName.first());
qry.addBindValue(_serialNo);
qry.addBindValue(0);
}
}
if( !qry.exec())
{
QMessageBox messageBox;
messageBox.critical(0,"Warning","Database doesn't exist or Database file may be corrupted");
messageBox.setFixedSize(500,200);
}
if(check == "y")
{
qDebug( "Updated serial_number as abnormal" );
}
db.close();