Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > записи в БД не добавляются в конец


Автор: ASMerg 20.2.2012, 14:38
Добрый день.

Столкнулся с проблемой, пытаюсь добавлять новые записи в mysql, в итоге записи добавляются, в одну и ту же позицию, просто смещаяя строчку которая была создана ранее вниз. Никак не пойму в чем дело.

Код

....
QSqlTableModel *model = new QSqlTableModel(this);
....

int row = model->rowCount();
model->insertRows(row,1);
model->setData(model->index(row, 0), (row+1));
model->setData(model->index(row, 1), "default");
model->submitAll();

Автор: loneybibi 20.2.2012, 16:18
Цитата(ASMerg @ 20.2.2012,  13:38)
Добрый день.

Столкнулся с проблемой, пытаюсь добавлять новые записи в mysql, в итоге записи добавляются, в одну и ту же позицию, просто смещаяя строчку которая была создана ранее вниз. Никак не пойму в чем дело.

Код

....
QSqlTableModel *model = new QSqlTableModel(this);
....

int row = model->rowCount();
model->insertRows(row,1);
model->setData(model->index(row, 0), (row+1));
model->setData(model->index(row, 1), "default");
model->submitAll();

Код

model->insertRows(row,1);
model->setData(model->index(row, 0), (row+1));

Как бы оно и будет всегда вставляться в одно и тоже место потому что row имеет одно и тоже значение, оно не меняется.

Я бы сделал что то вроде этого если надо вставить много записей:
Код

QSqlTableModel *model=new QSqlTableModel;
    int rowNumber=4;
    int rowCountNeedToBeAdded=6;
    for(int i=0;i<rowCountNeedToBeAdded;++i){
        model->insertRow(rowNumber);
        model->setData(model->index(rowNumber,0),"1");
        model->setData(model->index(rowNumber,1),"2");
        model->submitAll();
        rowNumber+=1;
    }


А если надо вставить в конец таблицы то:
Код

QSqlTableModel *model=new QSqlTableModel;
    int rowNumber=model->rowCount();
    model->insertRow(rowNumber);
    model->setData(model->index(rowNumber,0),"1");
    model->setData(model->index(rowNumber,1),"2");
    model->submitAll();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)