samedi 5 décembre 2015

Qt: How to delete a row from SQLite database using QSqlQueryModel ?

I am trying to delete a row from QSqlQueryModel as follow:

void MainWindow::deleteRecord()

{
    int row_index= ui->tableView->currentIndex().row();
    model->removeRow(row_index);
}

But it is not working.

I tried the following as well:

void MainWindow::deleteRecord()
    {
        int row_index= ui->tableView->currentIndex().row();    
        if(!db_manager->delete_record(QString::number(row_no))){
            ui->appStatus->setText("Error: data deletion ...");
        } else{
            ui->appStatus->setText("Record deleted ...");
        }
    }

Where in db_manager, the function delete_recod(QString row_no) is:

bool DatabaseManager::delete_record(QString row_index)
{
    QSqlQuery query;
    query.prepare("DELETE FROM personal_Info WHERE ref_no =  (:ref_no)");
    query.bindValue(":ref_no",row_index);
    if (!query.exec())
    {
        qDebug() << "Error" << query.lastError().text();
        return false;
    }
    return true;
}

But also not working. In both attempts, the application doesn't crash and no SQLite errors.

What am I doing wrong and How can I fix it ?

Aucun commentaire:

Enregistrer un commentaire