Я заганяю в 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.