2017-07-31 23 views
0

我觉得像下面这样也许有可能:我可以通过流将文件绑定到QSqlQuery吗?

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

我估计是好的,但我宁愿要么流,或使结构更可重复使用的内存(即像矢量)。

回答

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); 
+0

确实如此,但是当我写这个问题时,这是一个复制/粘贴的监督。我将编辑该问题以解决问题。 – Nicholas

相关问题