Russian Qt Forum

Qt => Базы данных => Тема начата: pro100skif от Июнь 22, 2014, 20:33



Название: Удаление записей/полей QSqlTableModel
Отправлено: pro100skif от Июнь 22, 2014, 20:33
Доброго времени суток, реализовал в программе удаление полей или записей такими функциями:
Код:
void MainWindow::deleteRecord()
{
    QSqlQuery query;
    QString str;
    int id;

    QModelIndexList indexes =   ui->sqlTable->selectionModel()->selection().indexes();
    foreach(QModelIndex index, indexes) {
            QSqlRecord record = model->record(index.row());
            id = record.value("ID").toInt();
            qDebug()<<id;
            str=QString::number(id);
            query.exec("delete from "+tableName+" where ID="+str);
        }
    model->setTable(tableName);
    model->select();
    ui->sqlTable->setModel(model);
}

Код:
void MainWindow::deleteField()
{
    int cnumber;
    QModelIndexList indexes =   ui->sqlTable->selectionModel()->selection().indexes();
    foreach(QModelIndex index, indexes) {
            cnumber=index.column();
            qDebug()<<cnumber;
            QSqlRecord record=model->record();
            QString field=record.fieldName(cnumber);
            qDebug()<<field;
            QSqlQuery query;
            query.exec("alter table "+tableName+" drop column "+field);

        }
    model->setTable(tableName);
    model->select();
    ui->sqlTable->setModel(model);

}
но столкнулся с проблемой: например я выделил запись и нажимаю кнопку удалить поле, в результате оно удаляет все поля, аналогичная ситуация и с удалением записей при выбранном поле.Вопрос как можно ли отследить что выбрано поле или запись и наложить какое то условие в функцию удаления например If(....выбрано поле а нужно удалить запись...)return;Заранее спасибо за помощь.