Название: Про QSqlRealationalTableModel и неочевидную связь Отправлено: crocus от Сентябрь 11, 2007, 05:57 Казалось задача тривиальная.
Есть таблица объектов: Код: modelFlats = new QSqlRelationalTableModel( this ); Код: streetIdx = modelFlats->fieldIndex( "street_cod" ); И есть еще таблица городов (tbl_city), связанная c улицами через tbl_street.city_cod = tbl_city.city_cod, в таблице объектов (tbl_flats) столбец city_cod - отсутствует, поскольку избыточен. Тем не менее город отображать надо --улицы не уникальны. Отображение объекта на форме делаю так: Код: modelFlats->setFilter( "flats_cod = " + FlatsCod ); Вопрос: как получить "город" или по крайней мере "street_cod" (в приведенном коде сразу получаем "street_name"), повторяюсь по названию улицы город не найдем(не уникальна) только по коду. Название: Re: Про QSqlRealationalTableModel и неочевидную связь Отправлено: stealth от Сентябрь 14, 2007, 19:55 я для этого использую еще одну таблицу соответсвия итемов из combobox и их ID, некрасиво правда это всё... так что может еще кто-что придумал?
Название: Re: Про QSqlRealationalTableModel и неочевидную связь Отправлено: Вячеслав от Сентябрь 14, 2007, 20:15 БД какая ? на нормальных можно вьюху (view) сделать и по ней прыгать ;) Ну и от умности сервера inserrt\update\delete или на тригерах\хп или руками .... ;)
Название: Re: Про QSqlRealationalTableModel и неочевидную связь Отправлено: Вячеслав от Сентябрь 15, 2007, 13:18 БД MySQL. в мускуле же можно create view сазать ;) вроде ?Вот вариант - но для меня не подходит: Код: QString streetdata = modelFlats->relationModel( streetIdx )->data(modelFlats->relationModel( streetIdx )->index(cdi.comboStreet->currentIndex(),0)).toString(); Блин ну должно же быть это просто - связывание то происходит все равно по "_cod", т.е. получить значение поля надо еще до реляции... Название: Re: Про QSqlRealationalTableModel и неочевидную связь Отправлено: Вячеслав от Сентябрь 15, 2007, 18:00 to:Вячеслав Вообще-то как-раз причем .Чем заниматься проктологией на клиенте НАМНОГО проще объяснить серверу, что данные надо отдовать в другом виде .... И если лень подумать малость то зачем орать ?Перечитай-ка свои посты, может вообще ничего не стоило писать? Ляпнул-брякнул и пошел... Какая вьюха бля, какой триггер...хз... Причем здесь вообще это?? Код: CREATE TABLE BUILDING ( Код: CREATE VIEW BUILDING_WITH_CITY( Написано на коленке - но для примера сойдет .... И что не удовлетворяет ? Название: Re: Про QSqlRealationalTableModel и неочевидную связь Отправлено: Вячеслав от Сентябрь 15, 2007, 19:25 Или я объяснить немогу, или ты понять неможешь?? Взаимно ;) Мы говорим о разном ж)Задайся вопросами: 1. зачем я вообще делаю связывание 2. нахрена мне код "улиц" (из примера) 3. и что получим Код: cdi.comboStreet->setCurrentIndex( cdi.comboStreet->findText( rec.value( streetIdx ).toString() ) ); И ответы: 1. запись в таблице может редактироваться. 2. названия улиц не уникальны (уникален "street_cod") 3. подставит первую- какую найдет Ты пытаешься ситуевину на клиенте разрулить - я на сервере .... Цитировать И есть еще таблица городов (tbl_city), связанная c улицами через tbl_street.city_cod = tbl_city.city_cod, в таблице объектов (tbl_flats) столбец city_cod - отсутствует, поскольку избыточен. И что мешает с помощью view добавить искомое ? С моей колокольни проще на клиента выгрести данные такие как нужно для работы. А вообще может в аську пойдем дабы флейм не разводить ? PS доку в ассистенте читал и формочки рсиовал подобные пока на ОМ не убежал ;) |