Qt: Обмен бинарными данными
This commit is contained in:
parent
322cd0643e
commit
5661034292
41
wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc
Normal file
41
wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc
Normal 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();
|
||||||
|
---
|
||||||
|
|
Loading…
Reference in New Issue
Block a user