Russian Qt Forum
Июнь 15, 2024, 23:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QSqlRelation и представление с аггрегатной функцией (sqlite)  (Прочитано 2308 раз)
Alin Glow
Гость
« : Апрель 14, 2012, 19:24 »

Здравствуйте.
Имеется представление, созданное на основе запроса с агрегатной функцией. Не могу такой столбец вставить в QSqlRelationalTableModel с помощью QSqlRelation.
Представление (добавляет столбик тех, кто ссылается на текущую запись из другой таблицы):
Код
SQL
CREATE VIEW [view_maintenance_trolleybus] AS
SELECT maintenance.id, maintenance.name, group_concat(trolleybus.id)
FROM maintenance
LEFT OUTER JOIN trolleybus
ON maintenance.id = trolleybus.maintenance_id
GROUP BY maintenance.id

Вот так пытаюсь заменить в другой таблице:
Код:
model->setRelation( 3, QSqlRelation( "view_maintenance_trolleybus", "id", "group_concat(trolleybus.id)" ) );
model->Select() проходит с ошибкой: "near "(": syntax error Unable to execute statement"
Использую SQLite, как я понял, поименовать столбцы в представлении нельзя. Тот же самый запрос работает как задумано с QSqlQueryModel, но вариант не утраивает, так как хочется редактируемую таблицу.

UPD: [РЕШЕНО]
В SQLite возможно переименовать столбцы в представлении, если переименовать их внутри образующего SELECT с помощью оператора AS.
Код
SQL
SELECT maintenance.id, maintenance.name, group_concat(trolleybus.id) AS "newname"
Теперь данное представление можно использовать в Qt.
« Последнее редактирование: Апрель 15, 2012, 00:36 от Alin Glow » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 20.