crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QSqlRelationalTableModel, как подружить setRelation и setFilter?
grio
  опции профиля:
сообщение 16.1.2010, 15:27
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


 model_user = new QSqlRelationalTableModel;
model_user->setTable("users");
model_user->setFilter("Name LIKE '%"+ui->lineEdit_search->text()+"%'");
model_user->setRelation(13, QSqlRelation("users", "UID", "Name"));
model_user->select();
...


Делаю форму поиска пользователей, в которой один пользователь может ссылаться на другого.
Но если использую одновременно setRelation и setFilter то результат - пустая таблица.
Как можно выйти из положения?
У меня нет задачи редактировать таблицу, нужно лишь отображать данные.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MoPDoBoPoT
  опции профиля:
сообщение 16.1.2010, 20:14
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Самое главное я забыл для чего все это нужно было :)
Дело сводится к простому SQL:
...
QSqlQuery q;
query.prepare("SELECT u1.UID, u1.name,..., u2.name AS chief FROM users u1, users u2"
                      " WHERE name LIKE '%' || :name || '%' "
                      " AND u1._chief = u2.UID);
query.bindValue(":name", ui->lineEdit_search->text());
query.exec();
...

В полях выбора перечисляются все необходимые поля с алиасом u1, кроме 13 поля - "u2.name AS chief"
В условии WHERE "u1._chief" - подразумевает 13 поле...

Сообщение отредактировал MoPDoBoPoT - 16.1.2010, 20:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 14:39