Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Max Payne от Апрель 08, 2012, 14:18



Название: Редактируемый QsqlQueryModel
Отправлено: Max Payne от Апрель 08, 2012, 14:18
Всем доброе время суток. Пытаюсь создать свою редактируемую модель QSqlQueryModel. Сделал все как в примере в книги ЗЕмскова, но у меня выкидывает ошибку
Код:
QSqlQuery::prepare: database not open
"Driver not loaded Driver not loaded"
Не могу понять как указывается куда обращается QSqlQuery, ведь там явно базу данных не указываем, помогите разобраться , и извините за такой нубский вопрос =/


Название: Re: Редактируемый QsqlQueryModel
Отправлено: lit-uriy от Апрель 08, 2012, 14:33
Цитировать
QSqlQuery::QSqlQuery ( const QString & query = QString(), QSqlDatabase db = QSqlDatabase() )

Constructs a QSqlQuery object using the SQL query and the database db. If db is not specified, or is invalid, the application's default database is used. If query is not an empty string, it will be executed.
Т.е. если используется соединение по умолчанию, которое ты создаёшь не указывая имени соединения, а только драйвер, например:
Код
C++ (Qt)
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");


Название: Re: Редактируемый QsqlQueryModel
Отправлено: Max Payne от Апрель 08, 2012, 14:44
Нет я имею ввиду что в самой модели при редактировании данных в setData , выдает ошибку. При этом в этом классе модели нету подключения к базе. Только при установке setQuery из главного класса мы передаем указатель на базу. При этом ошибку выдает в нутри класса модели что база не подключена =/


Название: Re: Редактируемый QsqlQueryModel
Отправлено: Dr.Vlad от Апрель 29, 2012, 21:11
Нет я имею ввиду что в самой модели при редактировании данных в setData , выдает ошибку. При этом в этом классе модели нету подключения к базе. Только при установке setQuery из главного класса мы передаем указатель на базу. При этом ошибку выдает в нутри класса модели что база не подключена =/


Если вы сразу создали базу, то пока вы её не закрыли, то все транзакции будут открытыми.
Можно в query даже db не писать.