Russian Qt Forum

Qt => Model-View (MV) => Тема начата: JayFOX от Июнь 29, 2010, 11:44



Название: QSqlTableModel и обрыв связи
Отправлено: JayFOX от Июнь 29, 2010, 11:44
Здравствуйте. Использую QSqlTableModel, подключаюсь к MySQL. Все работает без нареканий, но, в случае обрыва соединения, а затем при восстановлении соединения информация о записях в модели пропадает. Пробовал заново создавать QSqlDatabase или же заново соединяться, помогает лишь пересоздание модели. Помогите, пожалуйста, найти решение без пересоздания объектов.


Название: Re: QSqlTableModel и обрыв связи
Отправлено: Пантер от Июнь 29, 2010, 11:50
Попробуй не заново создать QSqlDatabase, а на текущем переоткрыть соединение.


Название: Re: QSqlTableModel и обрыв связи
Отправлено: JayFOX от Июнь 29, 2010, 11:52
Код:
onlineDb.close();
onlineDb.open();
В данный момент это реализовано, но не помогает. Это подразумевается под переоткрытием?


Название: Re: QSqlTableModel и обрыв связи
Отправлено: crossly от Июнь 29, 2010, 11:55
сделать модели select()...


Название: Re: QSqlTableModel и обрыв связи
Отправлено: JayFOX от Июнь 29, 2010, 12:01
Не помогает, модель пуста.


Название: Re: QSqlTableModel и обрыв связи
Отправлено: JayFOX от Июнь 30, 2010, 19:25
Кажется, немного продвинулся:
Код:
dataBase = QSqlDatabase::addDatabase("QMYSQL");
dataBase.setHostName("XXX");
dataBase.setDatabaseName("YYY");
dataBase.open();
QSqlTableModel* model = new QSqlTableModel(this,dataBase);
model->setTable("ZZZ");
model->select();
Все хорошо. Затем, после
Код:
database.close();
database.open():
выдается "Unable to find table ZZZ"
Неужели не оживить модель? или я здесь моя ошибка?