Название: Как пересобрать модель из исходников? Отправлено: PavelVX от Сентябрь 30, 2011, 12:39 Возникла необходимость немного подправить QSqlRelationalTableModel(запрашивает только первые 256 значений, а надо все)
До этого стояла Qt 2010.05. В ней зашел в исходники. сделал необходимое изменение и собрал библиотеку заново. Сейчас поставил QtSDK 4.7.4. Через Updater скачал исходники. В QtCreator открываю sql.pro. А в этот проект входит много того, что я не хотел бы пересобирать. Ну ладно, входит так входит. Пытюсь собрать, а оно ругаться начинает: ..\sql\kernel\qsqlquery.cpp:51:38: error: private/qsqlnulldriver_p.h: No such file or directory Посоветуйте, как же все таки пересобрать проект? А что делать с models.pri я не знаю, и гугл не помогает :( Название: Re: Как пересобрать модель из исходников? Отправлено: Пантер от Сентябрь 30, 2011, 13:12 Читай и не занимайся ерундой (http://doc.qt.nokia.com/4.7/qabstractitemmodel.html#canFetchMore)
Название: Re: Как пересобрать модель из исходников? Отправлено: shirushizo от Сентябрь 30, 2011, 14:17 Самое православное решение.
Код: while(model->canFecthMore()) model->fetchMore(); А если уж совсем заняться нечем: можно наследоваться и переопределить select(). Название: Re: Как пересобрать модель из исходников? Отправлено: PavelVX от Октябрь 03, 2011, 08:15 Эхх, плохо я объяснил проблему.
Есть таблица с внешними ключами: zakaz (pk1, fk1, ...) Есть таблица с названиями names (pk2, names, ... ) fk1 соединен с pk2. zakaz->setTable("zakaz"); zakaz->setRelation(2, QSqlRelation("names", "pk2", "names")); Вот теперь, при открытии этой таблицы внешние ключи заменятся на названи. Но если названий больше чем 256, то изменения будут невозможны, так как в QSqlRelationalTableModel.cpp не будет нужной QHash пары. До этого я вставлял там while(model->canFecthMore()) model->fetchMore(); таким образом создавая все пары. И все редактировалось/вставлялось. сейчас не получается. Как в данном случае обойтись без пересборки модели? Значений в таблице будет больше чем 256 всегда. Название: Re: Как пересобрать модель из исходников? Отправлено: shirushizo от Октябрь 03, 2011, 12:19 Код: zakaz->setTable("zakaz"); Название: Re: Как пересобрать модель из исходников? Отправлено: PavelVX от Октябрь 03, 2011, 13:30 спасибо, все заработало!
|