PDA

View Full Version : Sorting and filtering sql data



kode
17th December 2010, 15:50
Hi all,

how can i sort and filter data in table. I will use sql as source of the data, so i can use where clause as filter, but is there something as data holder (similar to dataadapter, datareader or dataset in .net) which i can operate with, without to fetch the data every time from the sql server?

Also some reference on sorting filtering would be helpful.

Thanks!

Everall
17th December 2010, 16:47
Hi Kode,

I don' know about dataadapter, datareader or dataset in .net but maybe you could have a look at the following examples.

models have there own sorting capabilities without using SQL syntax :


QSqlRelationalTableModel *model = new SqliteRelationaltableModel(this);
model->setTable("employee");
model->setSort(employee_name, Qt::AscendingOrder);

QTableView and headers can help you out also :


QHeaderView *headerH = tableview->horizontalHeader();
headerH->setMovable(true);//DRAG AND DROP IS POSSIBLE NOW
headerH->setClickable(true);
headerH->setSortIndicator(employee_name,Qt::AscendingOrder) ;
headerH->setSortIndicatorShown(true);
tableview->setSortingEnabled(true);

Hope this helps finding more information in the docs.

Cheers,

everall

jameslee
12th June 2013, 04:11
above that is similar my case..
i'v tested sorting&filtering on sqlite with qte-4.7.2.
but Date is not filtered between minimum(1970.1.1) and maximum(2099.12.31). where is wrong point?
model = new QSqlRelationalTableModel(this);
model->setTable("albums");
model->select();

proxyModel = new MySortFilterProxyModel(this);
proxyModel->setDynamicSortFilter(true);
proxyModel->setSourceModel(model);
ui->tableView->setShowGrid(true);
ui->tableView->verticalHeader()->hide();
ui->tableView->setModel(proxyModel);

void userset_Dialog_32::dateFilterChanged()
{
proxyModel->setFilterMinimumDate(ui->fromDateEdit->date());
proxyModel->setFilterMaximumDate(ui->toDateEdit->date());
}

i attached files.
thanks!