我可以通过流将文件绑定到QSqlQuery吗?

时间:2017-07-31 03:14:48

标签: sql qt stream

我认为以下内容可能是可能的:

QFile f("thumbnail.jpg");
f.open(QIODevice::ReadOnly);
QDataStream ds(&f);
query->bindValue(":data", ds, QSql::In | QSql::Binary);

然而,数据库字段最终以NULL结尾。我目前唯一可以工作的是:

QByteArray ba = f.readAll();
query->bindValue(":data", ba, QSql::In | QSql::Binary);

我认为这很好,但我更喜欢流式传输或使结构更可重复使用内存(即像矢量)。

1 个答案:

答案 0 :(得分:0)

在第一个场景中,您需要在使用流之前打开该文件。

请尝试下面的内容。

QFile f("thumbnail.jpg");
file.open(QIODevice::ReadOnly); //OPEN THE FILE BEFORE ASSIGNING TO STREAM
QDataStream ds(&f);
query->bindValue(":data", ds, QSql::In | QSql::Binary);