Russian Qt Forum

Qt => Model-View (MV) => Тема начата: kibsoft от Февраль 11, 2010, 16:46



Название: QSqlTableModel и добавление записи
Отправлено: kibsoft от Февраль 11, 2010, 16:46
Есть пустая модель, мне нужно добавить туда несколько QSqlRecord..
Делаю так: tableModel->insertRecord(-1,record), но все данные записываются в одну и ту же ячейку...т.е. строки не добавляются. Пробовал insertRow(), но данные также записываются в одну ячейку..
P.S. Сколько будет записей я точно не знаю, и подсчитать не могу.


Название: Re: QSqlTableModel и добавление записи
Отправлено: MoPDoBoPoT от Февраль 11, 2010, 19:28
Есть пустая модель
В смысле? Ты не делал QSqlTableModel::setTable() или(и) QSqlTableModel::select()? Тогда это неправильно. Если нужно изначально пустую таблицу, то можно сделать заведомо пустой запрос вида "SELECT * FROM table_name WHERE 1<>1", чтобы "навести мосты".


Название: Re: QSqlTableModel и добавление записи
Отправлено: kibsoft от Февраль 11, 2010, 19:49
Нет, я сделал setTable(), таблица пустая..а как в модель вставить новую запись не понимаю..


Название: Re: QSqlTableModel и добавление записи
Отправлено: kibsoft от Февраль 11, 2010, 21:40
С вставкой вроде разобрался...а как искать данные по модели? indexOf или что-нибудь..или setFilter() надо использовать? Если да, то вот еще вопрос: я поставил EditStrategy в OnManualSubmit, но при работе фильтра он берет данные из базы или из заполненной модели? (она уже заполнена всей таблицей)


Название: Re: QSqlTableModel и добавление записи
Отправлено: crossly от Февраль 12, 2010, 13:49
setFilter прибавляет к запросу Where ... т.е. селект с условием.... если тебе надо фильтровать данные в модели используй QSortFilterProxyModel....