Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2009 09:38:36

voltron
От:
Зарегистрирован: 2009-04-23
Сообщения: 31
Репутация: +  2  -
Профиль   Отправить e-mail  

QSqlTableModel не сохраняются блобы

Работаю с базой SQLite средствами QtSql. Одно из полей таблицы - блоб, где хранятся картинки. Вся работа с базой идет через модели QSqlTableModel, и когда пытаюсь сохранить картинку используя модель, то сохранения не происходит. Хотя все остальные поля сохраняются нормально.

bytes = QByteArray()
buffer = QBuffer( bytes )
photo = QPixmap()
photo.load( filename )
buffer.open( QIODevice.WriteOnly )
photo.save( buffer, "PNG" )
self.formsModel.record( row ).setValue( "pict", QVariant( bytes ) )
row содержит номер нужной записи, во все остальные поля (тестовые и числовые) записывать при помощи setValue получается.
А вот если загружать тот же файл в ту же таблицу через QSqlQuery, то все работает на ура
bytes = QByteArray()
buffer = QBuffer( bytes )
photo = QPixmap()
photo.load( filename )
buffer.open( QIODevice.WriteOnly )
photo.save( buffer, "PNG" )
query = QSqlQuery()
query.prepare( "UPDATE forms SET Pict = :p WHERE Id = :fid" )
query.bindValue( ":p", QVariant( bytes ) )
query.bindValue( ":p", QVariant( formId ) )
query.exec_()
Почему же через модель не удается сохранить? Не хочется ради одного поля заводить QSqlQuery



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version