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
  опции профиля:
сообщение 17.1.2010, 0:10
Сообщение #2


Участник
**

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

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




Репутация:   9  


Те же яйца только в профиль :)
Просто я забыл алиас дописать:
SELECT u1.UID, u1.name,..., u2.name AS chief FROM users u1, users u2 WHERE u1.name LIKE '%' || :name || '%' AND u1.pole13 = u2.UID

А вообще, работа с БД предполагает знание SQL ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 17.1.2010, 8:45
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(MoPDoBoPoT @ 17.1.2010, 1:10) *
Те же яйца только в профиль :)
Просто я забыл алиас дописать:
SELECT u1.UID, u1.name,..., u2.name AS chief FROM users u1, users u2 WHERE u1.name LIKE '%' || :name || '%' AND u1.pole13 = u2.UID

А вообще, работа с БД предполагает знание SQL ;)


Нет, здесь яйца как раз другие.
В твоем случае записи, содержащие пустое поле 13 не будут отображены никогда.
Но этот вопрос, возможно, тоже решается через *= (я не пробовал).
В принципе, пошел оффтопик уже. Надо переходить в ветку SQLITE.


Сообщение отредактировал grio - 17.1.2010, 11:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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