Qt: Обмен бинарными данными

This commit is contained in:
Andrei Astafev 2019-06-20 06:56:39 +03:00
parent 322cd0643e
commit 5661034292

View File

@ -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();
---