Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ QSqlTAbleModel+QTableView

Автор: iris22 4.10.2009, 15:25

Подскажите, пожалуйста, как удалять данные из таблицы.
Пробовала делать так:

void Window::deleteRecord(){
    int row;
    QItemSelectionModel *selectModel;
    QModelIndexList indexes;
    QModelIndex index;

    selectModel = view->selectionModel();
    indexes = selectModel->selectedIndexes();

    foreach(index, indexes)
    {
        QString str;
        if (!model->removeRows(row,1))
        {
            str = model->lastError().text();
            qDebug()<<str;
            break;
        }
        else
        {
            view->setRowHidden(row,true);
        }
    }
}

но ничего не выходит. Вылетает на строчке:
foreach(index, indexes)

Автор: MoPDoBoPoT 4.10.2009, 15:47

Первое, что бросается в глаза, это то, что переменная row нигде не инициализируется.

Автор: iris22 4.10.2009, 16:07

row = index.row();
но вылетает то он раньше

Автор: Litkevich Yuriy 5.10.2009, 1:22

Цитата(iris22 @ 4.10.2009, 19:25) *
Вылетает на строчке:
foreach(index, indexes)
а как ты это определил?

Автор: iris22 5.10.2009, 9:24

прошлась пошагово

Автор: Litkevich Yuriy 5.10.2009, 15:21

попробуй всё тело цикла foreach закоментировать, может с ним что-то не так (с ключевым словом)

Автор: iris22 5.10.2009, 21:19

закоментила. все равно вылетает,на предыдущей строчке.

Автор: Litkevich Yuriy 6.10.2009, 4:40

iris22, у тебя нет такой строчки в pro-файле: CONFIG += no_keywords ?
попробуй воспользоватся http://doc.crossplatform.ru/qt/4.5.0/qtglobal.html#Q_FOREACH

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)