Доброе время суток, народ подскажите начинающему как в классе QSqlTableModel, сделать выборку нужных полей по умолчанию примерно следующее SELECT * FROM table;
А как мне сделать что бы он выбирал к примеру только SELECT id, name FROM table ???
Фильтр не канает… пробовал(((
Спасибо за внимание…
Ну почему же выбирать)
QSqlTableModel наследуется от QSqlQueryModel, в которой есть метод setQuery().
Однако в QSqlTableModel он является защиненным (мне лично непонятно как )
Есть хитрость:
Воспользуемся преимуществами наследования.
QSqlTableModel *tableModel = new QSqlTableModel();
QSqlQueryModel *queryModel = dynamic_cast<QSqlQueryModel*>(tableModel);
queryModel->setQuery( .... );
QSqlTableModel *tableModel = new QSqlTableModel();
QSqlQueryModel *queryModel = dynamic_cast<QSqlQueryModel*>(tableModel);
queryModel->setQuery( .... );
Можно средствами БД решить, создав представление и сделав выборку из него.
Всё получилось как Вы и сказали, но вот редактировать отказывается(((
QTableView view;
QSqlTableModel *model = new QSqlTableModel();
QSqlQueryModel *queryModel = dynamic_cast<QSqlQueryModel*>(model);
queryModel->setQuery("SELECT id, name FROM firm");
model->select();
model->setEditStrategy(QSqlTableModel::OnFieldChange);
view.setModel(model);
view.show();
TableView view;
QSqlTableModel *model = new QSqlTableModel();
model->setTable("firm");
QSqlQueryModel *queryModel = dynamic_cast<QSqlQueryModel*>(model);
queryModel->setQuery("SELECT id, name FROM firm");
model->select();
model->setEditStrategy(QSqlTableModel::OnFieldChange);
view.setModel(model);
view.show();
CREATE OR REPLACE VIEW v_table (id, name)
AS
SELECT id, name FROM table;
QSqlTableModel *model = new QSqlTableModel();
model->setTable("v_table");
Уже наверное не актуально, случайно нагуглил тему.
Трюк с наследованием имхо жуткий хак, лучше не юзать.
А так же со вьюшками в базе.. Не самый лучший способ.
Есть же стандартный метод в QSqlTableModel:
а можно ли примерчик???даже сравнить не с чем...что да как...
UPD
Сори, я невнимательный, удалите)
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)