Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как запихать картинку в mysql blob? И как потом доставать?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
smartchecker
Как запихать картинку в mysql blob и как её потом доставать и отображать?
Snake174
QByteArray bytes;
QBuffer buffer( &bytes );
buffer.open( QIODevice::WriteOnly );
yourImage.save( &buffer, "EXT" );  // "EXT" - расширение ("JPG", "PNG" и т.д.)

Дальше делаешь запрос, например
QString sqlInsertImage = QString("insert into images(%1) values(%2)")
  .arg("blob_поле")
  .arg( QVariant( bytes ) );

Потом делаешь выборку.
Дальше что-то типа этого:
while( query->next())
{
  QByteArray loadImage = query->value(0).toByteArray();
  
  if (!loadImage.isEmpty())
  {
     QImage img;
     img.loadFromData( loadImage );
   }
}
smartchecker
А если я использую QSqlRelationalTableModel?
Как там быть?
Snake174
Можешь написать кусок кода, где ты пытаешься сохранить изображение в БД? Просто с QSqlRelationalTableModel я не работал.
smartchecker
Цитата(Snake174 @ 28.4.2012, 6:02) *
Можешь написать кусок кода, где ты пытаешься сохранить изображение в БД? Просто с QSqlRelationalTableModel я не работал.

Мне бы сначала отобразить ;)
Есть у меня поле cover, которое blob. В таблице оно отображается как надпись PNG с неким мусором.
    modelBooks = new QSqlRelationalTableModel(this, db);
    modelBooks->setTable("books");
    modelBooks->setEditStrategy(QSqlTableModel::OnManualSubmit);

    genresIndex = modelBooks->fieldIndex("genres_id");
    modelBooks->setRelation(genresIndex, QSqlRelation("genres", "id", "genre"));

    if (!modelBooks->select()) {
        showError(modelBooks->lastError());
        return;
    }

    ui->tableViewBooks->setModel(modelBooks);
    ui->tableViewBooks->resizeColumnsToContents();
    ui->tableViewBooks->setCurrentIndex(modelBooks->index(0, 0));
    ui->tableViewBooks->setColumnHidden(0, true);



Подозреваю, что для отображения нужно писать делегата.
Snake174
Посмотри здесь ещё: http://forum.vingrad.ru/forum/topic-210942...lob-sqlite.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.