Название: Заполнение QComboBox из БД Отправлено: qks1 от Август 05, 2012, 02:39 Здравствуйте!
Есть в БД таблица с деталями, каждая деталь имеет несколько параметров (пусть будет до 10), столбцы с ними имеют имена par1, par2, ..., par10. В программе есть поисковик по деталям, в поисковике несколько комбобоксов, по максимальному кол-ву параметров (т.е. 10). Первый комбобокс заполняется значениями par1, второй - значениями par2 и так далее до 10. Естественно, при выборе строки в одном из комбобоксов происходит выбор из БД соответствующих строк. В поисковике есть и другие фильтры (по названию, по цене и т.д.), соответственно, при каждом новом поиске надо производить перезаполнение комбобоксов. Кусок кода, отвечающий за это: Код
Формирование комбобоксов занимает ощутимое время (около двух-трёх секунд), что нехорошо, т.к. условия поиска могут меняться довольно часто. Основное время, как я понимаю, занимает проход циклом по результату запроса. Можно ли как-нибудь быстро преобразовать запрос из одного столбца в QStringList? Или, может, будут другие предложения, как ускорить процесс? Заранее всем спасибо. Название: Re: Заполнение QComboBox из БД Отправлено: Странник от Август 05, 2012, 06:16 почитайте о Model/View. для выборки данных используйте QSqlQueryModel и устанавливайте ее с помощью QComboBox::setModel. не исключено, впрочем, что узкое место у вас - БД, но хотя бы реализовано будет по-человечески = ) идея такова:
Код: QSqlQueryModel *model = new QSqlQueryModel(this); Название: Re: Заполнение QComboBox из БД Отправлено: qks1 от Август 05, 2012, 16:08 А слона-то я... По QSqlQuery и QSqlQueryModel документацию перелопатил, а по QComboBox как-то невнимательно ???
Спасибо большое! |