Russian Qt Forum

Qt => Базы данных => Тема начата: vasa_sol от Июль 06, 2008, 00:26



Название: непонятно с MYSQL
Отправлено: vasa_sol от Июль 06, 2008, 00:26
Здравствуйте!
Вот непонятно:
сделал модель, MyView, определил текст SQL-запроса для обновления данных каждого столбца таблицы в bool MyModel::setData.
Cоединяюсь с QSQLITE, в MyView меняю данные, происходит отображение измененных данных. Все работает. Соединяюсь с QMYSQL (таблицы идентичные, в общем QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" ) поменял на QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL" ) ну и понятно всякие другие setDatabaseName поменял), в MyView меняю данные и ничего не происходит, т.е. данные не меняются. А очень хочется и непонятно почему. Кто подскажет отчего так?


Название: Re: непонятно с MYSQL
Отправлено: ритт от Июль 06, 2008, 01:01
исчерпывающая информация.
перевожу: "отнаследовался от Q*View, а в bool MyModel::setData выполняю SQL-запрос. почему не работает?"


Название: Re: непонятно с MYSQL
Отправлено: vasa_sol от Июль 06, 2008, 11:12
Поясняю: сделал свой просмотр от QTableView дабы реализовать разные события от мыша, написал модель для разной раскраски клеточек, в модели определил setData чтобы редактировать данные.  C sqlite все работает - данные в клеточках можно поменять, добавить строки, удалить и т.п. С mysql (идентичные талицы) данные не меняются как-бы модель readonly стало.


Название: Re: непонятно с MYSQL
Отправлено: crocus от Июль 06, 2008, 17:46
проверь наличие ключей в таблицах


Название: Re: непонятно с MYSQL
Отправлено: vasa_sol от Июль 06, 2008, 18:29
Имеют место быть  :(


Название: Re: непонятно с MYSQL
Отправлено: vasa_sol от Июль 07, 2008, 17:31
Видимость такая: добавляешь запись
Код:
QSqlQuery q;
q.prepare("insert into (что-то) values(что-то)");
ok=q.exec(); // после exec ok=true
а данные не меняются ..... или добавляется какая-то хрень... ???


Название: Re: непонятно с MYSQL
Отправлено: ритт от Июль 07, 2008, 17:55
что q.prepare(...) возвращает?
попробуй
Код:
QSqlQuery q;
ok=q.exec("insert into (что-то) values(что-то)");


Название: Re: непонятно с MYSQL
Отправлено: vasa_sol от Июль 07, 2008, 22:53
Код:
if(!q.prepare("тут prepare"))
{
 QMessageBox::critical
.....
первое сообщение:
Код:
Lost connection to MySQL server during query QMYSQL3: Unable to execute statement
в консоли:
Код:
QMYSQLResult::cleanup: unable to free statement handle
последующие:
Код:
MySQL server has gone away QMYSQL3: Unable to prepare statement

как понимаю связь с сервером теряется. И почему ....?