From 566103429272e9d22679ecfa5fbc690a90b976d4 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 20 Jun 2019 06:56:39 +0300 Subject: [PATCH] =?UTF-8?q?Qt:=20=D0=9E=D0=B1=D0=BC=D0=B5=D0=BD=20=D0=B1?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=D1=80=D0=BD=D1=8B=D0=BC=D0=B8=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Qt/Qt обмен бинарными данными с БД.adoc | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc diff --git a/wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc b/wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc new file mode 100644 index 0000000..609991b --- /dev/null +++ b/wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc @@ -0,0 +1,41 @@ += Qt: обмен бинарными данными с БД +:title-separator: {sp}| +:category: Программирование +:tags: программирование, qt, postgresql, бд + +Таблица, с которой осуществляется обмен: + +[source,sql] +---- +CREATE TABLE example ( + id INTEGER, + bin_data BYTEA +); +---- + +Запись данных: + +[source,cpp] +---- +const char cart[] = {0x04, 0x43, 0x00, 0x9A}; +QByteArray binDataArray(QByteArray::fromRawData(cart, 4)); +QSqlField dataField("bin_data", QVariant::ByteArray); +byteField.setValue(binDataArray); + +QSqlDatabase db = QSqlDatabase::database(); +QSqlQuery query; +query.exec(QString("INSERT INTO files VALUES(%1, %2);") + .arg(18) + .arg(db.driver()->formatValue(dataField))); +--- + +Чтение данных: + +[source,cpp] +--- +QSqlQuery query; +query.exec("SELECT id, bin_data FROM example LIMIT 1"); +query.next(); +QByteArray binDataArray = query.value(query.record().indexOf("bin_data")).toByteArray(); +--- +