Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новые вопросы и ответы 3 (https://www.otvetnemail.ru/novye-voprosy-i-otvety-3-822/)
-   -   Подключить существующую БД к внешнему виджету (https://www.otvetnemail.ru/novye-voprosy-i-otvety-3-822/podklyuchit-sushestvuyushuyu-bd-k-vneshnemu-vidzhetu-271555/)

Guest 29.09.2011 05:38

Подключить существующую БД к внешнему виджету
 
Ситуация такая: в главной форме создается и используется объект базы данных:КодC++ (Qt)QSqlDatabase managerDatabase;Объекты запросов типаКодC++ (Qt)QSqlQuery query(managerDatabase);Нормально создаются и исполняются.Теперь я хочу сделать собственный виджет, где бы использовалась уже подключенная БД.Объект запросов QSqlQuery должен быть общим, чтобы постоянно память не гонять.Соответственно, в описании класса имеемКодC++ (Qt)private: QSqlDatabase* database; QSqlQuery* query;Для передачи указателя на подключенную БД в новом виджете я создал следующую функцию:КодC++ (Qt)void wgtManager::prepareDatabase(QSqlDatabase * db){ database = db; query = new QSqlQuery(*db);}Эта функция вызывается из кода главной формы в конструкторе, но после создания пользовательского интерфейса (экземпляр пользовательского виджета добавлен в *.ui):КодC++ (Qt)ui->setupUi(this);ui->wgmManager->prepareDatabase(&managerDatabase);При попытке использовать query в пользовательском виджете я получаю "QSqlQuery::exec: database not open" в debug-окошке.Что я упустил? Ведь код выглядит вполне стандартно..


Часовой пояс GMT, время: 11:33.


© www.otvetnemail.ru - Форум вопросов и ответов.