Russian Qt Forum

Qt => Model-View (MV) => Тема начата: kalif от Октябрь 06, 2010, 20:53



Название: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: kalif от Октябрь 06, 2010, 20:53
Всем привет.
Есть такой код:
Код:
//перед этим идет коннект к базе

QTableView *view = new QTableView();
QSqlTableModel *model = QSqlTableModel();

view->setModel(model);
model->setTable("table");
model->select();
model->insertRow(model->rowCount());
model->setData(model->index(model->rowCount(),0),"data");
model->submitAll();


Так вот. Сабмит не выполняется, выдавая при этом ошибку: QSqlError(2036, "QMYSQL3: Unable to bind value", "Using unsupported buffer type: 1073741824  (parameter: 1)")
Подскажите в чем может быть проблема?


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: Kolobok от Октябрь 06, 2010, 21:31
Что такое model->rowCount?


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: kalif от Октябрь 06, 2010, 21:33
Пардон. Скобочки забыл.
model->rowCount();


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: Kolobok от Октябрь 06, 2010, 22:01
а так?

Код:
//перед этим идет коннект к базе

QTableView *view = new QTableView();
QSqlTableModel *model = QSqlTableModel();

view->setModel(model);
model->setTable("table");
model->select();
model->insertRow(model->rowCount());
model->setData(model->index(model->rowCount()-1,0),"data");
model->submitAll();


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: crossly от Октябрь 06, 2010, 22:18
rowCount возвращает количество записей... учитывая что нумерация начинается с 0... то вы делаете setData для строки которая находится за последней... :).. и соответственно не существует..


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: kalif от Октябрь 06, 2010, 22:23
Перед тем как делать setData, я делаю insertRow, создавая тем самым эту строку.


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: Kolobok от Октябрь 06, 2010, 22:40
Ну создаешь ты новую строку, да. А потом что делаешь? Посиди - помедитируй.


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: crossly от Октябрь 07, 2010, 11:38
Перед тем как делать setData, я делаю insertRow, создавая тем самым эту строку.
и что??... по твоему при этом rowCount не увеличивается??


Название: Re: Ошибка при сохранении данных в БД в QSqlTableModel
Отправлено: kalif от Октябрь 07, 2010, 12:45
Все таки правильно говорят: "Утро вечера мудренее".
Понял я на счет rowCount. Но проблемы это не решило