Как получить файл и сохранить его из бд? QSqlQuery query(db); while(query.next()){

query.value(1) //тут лежит файл в бд, как его правильно вытащить и сохранить в текущем каталоге?
}
я это представлял как некий конструктор у QFile из QByteArray, т.к. query может value конвертировать в этот тип, но такого конструктора нет у QFile. Подскажите в какую сторону искать?

12 ответов

16 просмотров

А что представляет из себя файл в бд? Если просто текст, то доставай текст из бд, создавай файл и пиши в файл

David-Werent Автор вопроса
Mr.Mait
А что представляет из себя файл в бд? Если просто ...

там может быть любой файл, ексель или пдф, например. тип столбца в БД - "вложение" вроде разобрался, QSaveFile file и потом метод write принимает QByteArray все работает

достаешь QbyteArray и у QFile вызываешь write https://doc.qt.io/qt-5/qiodevice.html#write-2

David-Werent Автор вопроса
mefest
достаешь QbyteArray и у QFile вызываешь write http...

сперва все работало, но сейчас файлы просто 1кб и не открываются. почему в них нет данных? QSqlQuery query(db); query.exec("SELECT * FROM OffersList"); while(query.next()){ QString filename=query.value(1).toString(); QByteArray data; QSaveFile file("C:\\stbuilder\\"+filename); file.open(QIODevice::WriteOnly); data=query.value(1).toByteArray(); file.write(data); file.commit(); qDebug()<<"file \""<<filename<<"\" downloaded!"; }

David Werent
сперва все работало, но сейчас файлы просто 1кб и ...

так ты имя и сам файл с одного места достаешь из бд

David-Werent Автор вопроса
Mr.Mait
так ты имя и сам файл с одного места достаешь из б...

так файл лежит в столбце с индексом 1, нет отдельного столбца с файлом и отдельного с именем файла, когда я value(1).toString() вызывал, он возвращал имя файла а этот же value(1).toByteArray() записывает содержимое?

David Werent
так файл лежит в столбце с индексом 1, нет отдельн...

Глянь в дебаге что в byteArray находится и поймешь что к чему

David Werent
сперва все работало, но сейчас файлы просто 1кб и ...

ну смотри на каком месте у тебя теряются данные, что возвращает write, и вообще какая ошибка в errorString

David-Werent Автор вопроса
Mr.Mait
Глянь в дебаге что в byteArray находится и поймешь...

ну да, вы правы, из в QByteArray data просто название файла. тогда я не понимаю как из query записать файл? что я сделал не так

David Werent
ну да, вы правы, из в QByteArray data просто назва...

мне кажется надо разобраться в бд и узнать что и где лежит

David-Werent Автор вопроса
mefest
мне кажется надо разобраться в бд и узнать что и г...

MS Access, тип столбца "вложение", внутри вот файл добавлен и его имя вытаскивается только при обращении к value(1) а как файл получить...

David Werent
MS Access, тип столбца "вложение", внутри вот файл...

думаю это специфика ms access, наверное проже будет спросить у людей кто с ней хорошо знаком или использовать другую бд

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта