【发布时间】:2017-05-28 00:52:22
【问题描述】:
如何使用 Qt 转储 SQLite 数据库表(使用 BLOB 类型)?
我有一个QVector<double>,我将其转换为QByteArray,并将其作为BLOB保存到数据库中。
我正在使用以下函数将QVector<double> 序列化为QByteArray:
QByteArray Serialize::serialize(QVector<double> data)
{
QByteArray byteArray;
QDataStream out(&byteArray, QIODevice::WriteOnly);
out << data;
return byteArray;
}
当我从数据库加载 BLOB 字段时,我使用反序列化函数再次获取 QVector<double>。
void Serialize::deserialize(QByteArray byteArray, QVector<double> *data)
{
QDataStream in(&byteArray, QIODevice::ReadOnly);
in >> *data;
}
如here 所述,.dump 命令是在 sqlite 命令行应用程序中实现的,而不是在 SQLite 库本身中实现的。然后,据我了解,我需要手动创建 SQL 文件。
我已经创建了一个函数来从所有表中选择所有数据并创建 SQL 插入语句以插入到 SQL 文件中。
问题是我不知道如何将QByteArray(BLOB)数据插入到可以导入到另一个数据库的SQL语句中未来。
我正在使用 Qt 5.3。
注意:本题与this one有关。
【问题讨论】:
标签: c++ database qt sqlite qbytearray