Russian Qt Forum
Ноябрь 23, 2024, 17:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: [РЕШ] Как записать в БД в поле типа BLOB или varbinary любой стандарный класс Qt  (Прочитано 11271 раз)
atischenko77
Гость
« Ответ #15 : Июль 28, 2012, 16:27 »

Я заганяю в BLOB файл так:
Есть процедура для считывания файла.
Код:
QVariant setFileVBlob(QString qsFile)
{
    QVariant qvFileVBlob;

    if (!qsFile.isEmpty())
    {
        QFile fFile(qsFile);
        if (fFile.open(QIODevice::ReadOnly))
        {
            QByteArray baFile = fFile.readAll();
            QVariant qvF(baFile.toBase64());
            qvFileVBlob = qvF;
            fFile.close();
        }
        else
        {
            QVariant qvF(QByteArray("").toBase64());
            qvFileVBlob = qvF;
        }
    }

    return qvFileVBlob;
}

а потом использую процедуру так

Код:
QVariant qvFileFotografiyiAversa = setFileVBlob(qsFileFotografiyiAversa);

где qsFileFotografiyiAversa это переменная типа QString которая содержит путь и имя файла который нужно загнать в BLOB.

Код:
QString qsZapros = "INSERT INTO mytable (avers) VALUES (?)";

QSqlQuery qsqQuery(DB);
qsqQuery.prepare(qsZapros);
qsqQuery.bindValue(0, qvFileFotografiyiAversa);

qsqQuery.exec();

DB - это открытая база данных.

Код рабочий 100%. Применяю у себя в программе. Проверено на СУБД PostgreSQL.
« Последнее редактирование: Июль 28, 2012, 18:19 от atischenko77 » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.121 секунд. Запросов: 20.