Михаиллл
May 16, 2020, 11:11 p.m.

Как в postgresql сохранить QByteArray

Добрый день.
Создал в postgresql столбец типа oid для хранения QByteArray.
Почитал что oid аналог BLOD, самого BLOB у меня в базе нет.
Но при таком типе данных не могу записать QByteArray, получаю такую ошибку:


При этом с oid работает только такой запрос (в этот тип данных записывается только число):

INSERT INTO public.categories(
    name, image)
    VALUES ( 'hh', 100);

Скажите пожалуйста как записывать QByteArray ? В какойто другой тип данных?

2

Do you like it? Share on social networks!

2
ИП
  • May 17, 2020, 4:05 p.m.
  • (edited)

Нужно использовать подготовленный запрос https://doc.qt.io/qt-5/qsqlquery.html
вот пример из документации

QSqlQuery query;
    query.prepare("INSERT INTO person (id, forename, surname) "
                  "VALUES (?, ?, ?)");
    query.addBindValue(1001);
    query.addBindValue("Bart");
    query.addBindValue("Simpson");
    query.exec();

addBindValue принимает тип QVariant, в него сохраняешь QByteArray и отправляешь в запрос

QByteArray ba;// QByteArray который нужно сохранить
...
Query query;
query.prepare("INSERT INTO public.categories(name, image) VALUES ( 'hh', ?);");
query.addBindValue(ba);
//Ну или можно явно указать компилятору что хочешь сделать
//query.addBindValue(QVariant(ba));
query.exec();

...
    Михаиллл
    • May 17, 2020, 4:13 p.m.
    • The answer was marked as a solution.

    Я так и делал. Оказывается в постгри столбец нужно делать в формате bytea

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
      • Evgenii Legotckoi
        Oct. 31, 2024, 11:37 p.m.
        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
      • A
        Oct. 19, 2024, 5:19 p.m.
        Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
      • ИМ
        Oct. 5, 2024, 4:51 p.m.
        Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
      • d
        July 5, 2024, 8:02 p.m.
        Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…