C++ 如何使用Qt转储SQLite数据库表(使用BLOB类型)?

C++ 如何使用Qt转储SQLite数据库表(使用BLOB类型)?,c++,database,qt,sqlite,qbytearray,C++,Database,Qt,Sqlite,Qbytearray,如何使用Qt转储SQLite数据库表(使用BLOB类型) 我有一个QVector,我将其转换为QByteArray,并将其作为BLOB保存到数据库中 我使用以下函数将QVector序列化为QByteArray: QByteArray Serialize::serialize(QVector<double> data) { QByteArray byteArray; QDataStream out(&byteArray, QIODevice::WriteOnly

如何使用Qt转储SQLite数据库表(使用BLOB类型)

我有一个
QVector
,我将其转换为
QByteArray
,并将其作为BLOB保存到数据库中

我使用以下函数将
QVector
序列化为
QByteArray

QByteArray Serialize::serialize(QVector<double> data)
{
    QByteArray byteArray;
    QDataStream out(&byteArray, QIODevice::WriteOnly);
    out << data;
    return byteArray;
}
QByteArray序列化::序列化(QVector数据)
{
QByteArray byteArray;
QDataStream out(&byteArray,QIODevice::WriteOnly);
输出>*数据;
}
如上所述,
.dump
命令是在sqlite命令行应用程序中实现的,而不是在sqlite库本身中实现的。然后,据我所知,我需要手动创建我的SQL文件

我已经创建了一个函数,用于从所有表中选择所有数据,并创建SQLinsert语句以插入到SQL文件中

问题是我不知道如何将
QByteArray
BLOB)数据插入SQL语句中,以便将来可以将其导入另一个数据库

我正在使用Qt5.3

注意:此问题与相关。

我使用了此代码

  QSqlQuery insertQuery(myDatabase);

  insertQuery.prepare("insert into images (name, data) values (:name, :data);");

  insertQuery.bindValue(":name",myImageName);
  insertQuery.bindValue(":data",*picture);

  insertQuery.exec();

图片类型为QByteArray*

这并没有解决具体问题,但我放弃了创建SQL文件。 我使用
byteArray.toHex()
命令生成了SQL文件,只是出于测试目的,但它生成的SQL文件比我的数据库文件(.db)大得多

例如,我的数据库文件有174MB,生成的SQL文件有331MB

然后我放弃了创建SQL文件,我正在导出数据库文件(.db)的副本,然后在需要时将其导入系统

为此,我只需创建一个新连接,并将此数据库文件中的所有内容复制到当前数据库文件中

正如我所说的,这不是对我问题的回答,而是对我的一般问题的一种变通办法

  QSqlQuery insertQuery(myDatabase);

  insertQuery.prepare("insert into images (name, data) values (:name, :data);");

  insertQuery.bindValue(":name",myImageName);
  insertQuery.bindValue(":data",*picture);

  insertQuery.exec();