Баг в QSqlTableModel?, Старанное поведение с записями у которых одно поле содержит NULL |
Здравствуйте, гость ( Вход | Регистрация )
Баг в QSqlTableModel?, Старанное поведение с записями у которых одно поле содержит NULL |
Kagami |
12.3.2009, 15:40
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Написал небольшую программку для графической работы со своей базой sqlite3.
Базу создавал следующим SQL-запросом:
Потом сделал форму с QTableView и, соответственно, стал использовать QSqlTableModel. В конструкторе у меня есть такие строчки:
А еще добавил слот, который вызывается по нажатию кнопки Del для удаления записи:
Строки в базу у меня добавлялись с помощью QSqlQuery:
при этом были строки, у которых третий параметр был NULL. Так вот, с такими строками я ничего не могу сделать ни в QTableView, ни в QSqlTableModel - ни удалить, ни изменить. Это баг или фича? |
|
|
Litkevich Yuriy |
14.3.2009, 9:39
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Я имел в виду писать в базу NULL Цитата void QSqlQuery::addBindValue ( const QVariant & val, QSql::ParamType paramType = QSql::In ) Adds the value val to the list of values when using positional value binding. The order of the addBindValue() calls determines which placeholder a value will be bound to in the prepared query. If paramType is QSql::Out or QSql::InOut, the placeholder will be overwritten with data from the database after the exec() call. To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant::String) if you are binding a string. т.к. QString() имеет своё собственное представление отличное от NULL в БД |
|
|
Текстовая версия | Сейчас: 30.11.2024, 3:02 |