Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Stoptyssin |
2.3.2012, 23:02
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 20.1.2012 Пользователь №: 3145 Спасибо сказали: 0 раз(а) Репутация: 0
|
Здравствуйте все! Задача такая: надо найти в БД строку по фамилии котрая вводится в QLineEdit. Информация отображается в QTableView. Вот код:
void PatPoisk::on_lEdPat_textChanged(QString ) { QString filter_query = ("Pat_F = ui->lEdPat->text()"); model->setFilter(filter_query); } Если вместо ui->lEdPat->text() вводить фамилию, то все работает как часы. |
|
|
|
|
RazrFalcon |
3.3.2012, 0:08
Сообщение
#2
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
э...
почему не ?Что-то вы нагородили со скобками и кавычками |
|
|
|
|
Stoptyssin |
3.3.2012, 8:22
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 20.1.2012 Пользователь №: 3145 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(RazrFalcon @ 3.3.2012, 4:08) Link э... почему не ?Что-то вы нагородили со скобками и кавычками А в каком поле ему смотреть? Вы этого не указали - Pat_F - поэтому нужны кавычки, без них ошибка будет |
|
|
|
|
MoPDoBoPoT |
3.3.2012, 14:10
Сообщение
#4
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9
|
Мде...
|
|
|
|
|
Stoptyssin |
3.3.2012, 15:29
Сообщение
#5
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 20.1.2012 Пользователь №: 3145 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(MoPDoBoPoT @ 3.3.2012, 18:10) Link Мде... Попробовал. Не работает, не находит в БД. Цитата(Stoptyssin @ 3.3.2012, 19:24) Link Цитата(MoPDoBoPoT @ 3.3.2012, 18:10) Link Мде... Попробовал. Не работает, не находит в БД. я дебил! Все заработало, сори! Теперь проблема в другом: при повторном введении не происходит поиска. Т.е. если стереть в lEdPat, то не показывает полный список и если ввести другой Pat_Id - не происходит поиска по базе. Только если закрыть форму и открыть снова, тогда все норм. |
|
|
|
|
vankleef |
5.3.2012, 13:49
Сообщение
#6
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1
|
Было такое у меня в каком-то проекте.
Вот такой конект в конструкторе: И вот реализация слота поиска: На int index=widget.comboBox->currentIndex(); не обращай внимания, это комбобокс, в котором указывается критерий, по которому надо искать (фамилия, серия/номер паспорта и тд) |
|
|
|
|
Stoptyssin |
6.3.2012, 13:54
Сообщение
#7
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 20.1.2012 Пользователь №: 3145 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо большое, буду пробовать. Сам уже подумал что через запрос легче будет )))
|
|
|
|
|
Stoptyssin |
14.3.2012, 20:57
Сообщение
#8
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 20.1.2012 Пользователь №: 3145 Спасибо сказали: 0 раз(а) Репутация: 0
|
Сдела так, вроде работает
void PatPoisk::on_lEdPat_textChanged(QString ) { if(ui->lEdPat->text().size() > 0) { QString filter_query = ("Pat_F like '" + ui->lEdPat->text()+"%'"); model->setFilter(filter_query); ui->tVPat->resizeColumnsToContents(); ui->tVPat->resizeRowsToContents(); } if(ui->lEdPat->text().size() == 0) { model->setTable("Patient"); model->select(); model->setHeaderData(1, Qt::Horizontal, tr("Фамилия")); model->setHeaderData(2, Qt::Horizontal, tr("Имя")); model->setHeaderData(3, Qt::Horizontal, tr("Отчество")); ui->tVPat->setModel(model); ui->tVPat->setColumnHidden(0, true); ui->tVPat->show(); } } правда коряво))) |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 19:46 |