Russian Qt Forum

Qt => Базы данных => Тема начата: Pechept от Ноябрь 05, 2009, 07:30



Название: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :( - решено
Отправлено: Pechept от Ноябрь 05, 2009, 07:30
Помогиде пожалуйста, код взял с форума, но картинка не грузится и не выгружается из базы
код загрузки
Код:
    QString filename= QFileDialog::getOpenFileName(this,"open picture");
  
    image.load(filename);
    QSqlQuery query;
     QByteArray ba;
     QBuffer buf( &ba );
     buf.open( QIODevice::ReadWrite);
     image.save( &buf, "XPM" );
     buf.close();
     query.prepare("INSERT INTO users (login,pass,role,foto) VALUES (:log, :pas, :rol,:fotko);");
     query.bindValue(":log",m_ui->login->text());
     query.bindValue(":pas", m_ui->pass->text());
     query.bindValue(":rol", m_ui->role->currentText());
     query.bindValue(":fotko", ba );
     query.exec();

Код считывания:
Код:
    QString im=m_ui->tableWidget->item(row,0)->text();
    query.prepare("Select foto from users where login=:log");
    query.bindValue(":log",im);
    query.exec();

    QByteArray ba;
    m_ui->label->setBackgroundRole(QPalette::Base);
    m_ui->label->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    m_ui->label->setScaledContents(true);
    while (query.next())
    {
    ba = query.value( 0 ).toByteArray();
    QPixmap pixmap(ba);
    m_ui->label->setPixmap( pixmap );
    }

Все запросы выполняются, запись в БД создается, но Navicat картинку не отображает
Хелп


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Makss от Ноябрь 05, 2009, 07:56
проверьте - после чтения из базы, прочитал ли он картинку, сохраните её просто в файл
если картинка есть, значит всё нормально, где-то что-то не прально написано после запроса, а вот если картинки нету, тут уже похуже скорее всего, возможно что её даже в базе нет, хотя "не возможно" а оно так и есть

сохраните в файл, посмотрим на результат и подумаем что дальше делать...


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Pechept от Ноябрь 05, 2009, 07:58
сохранил, пейнт не открыл, что сохранил - непонятно, но поле блоб - занято, почему-то Навикат показывает 36кбайт, хотя фалы указывал 4-5 кбайт, беда


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: BaltikS от Ноябрь 05, 2009, 08:15
ТЫ сохраняешь в формате XPM естественно, файл будет другого размера и естественно Paint не откроет формат XPM


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Pechept от Ноябрь 05, 2009, 08:23
предложите пути решения проблемы пожалуйста


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Pechept от Ноябрь 05, 2009, 08:25
прогресс, сохранил в том же формате навикат открыл, осталось разобратся со считыванием


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Pechept от Ноябрь 05, 2009, 08:38
Код:
double qwe=ba.length();
    m_ui->doubleSpinBox->setValue(qwe);
    QPixmap pixmap(ba);
    m_ui->label->setPixmap( pixmap );
Размер вывел точно, картинка не появилась, у кого есть соображения???


Название: Re: Qt 4.5.0, SQL 5.0 Картинка не грузится в базу :(
Отправлено: Pechept от Ноябрь 05, 2009, 08:40
Все решилось строчками:
Код:
   QPixmap pixmap;
    pixmap.loadFromData(ba);
    m_ui->label->setPixmap( pixmap );

Спасибо за подсказку про расширение