Bolb类型可以用QT的QByteArray进行读取。
结构体的存储:
1.定义结体:
struct MyStruct
{
int a;
int b;
};
2.将结构体放进QByteArray中:
MyStruct str;
str.a = 12;
str.b = 33;
QByteArray byteArray;
byteArray.resize(sizeof(MyStruct));
memcpy(byteArray.data(), &str, sizeof(MyStruct));//这里也可以用QDataStream进行处理
3.存入数据库中:
QSqlDatabase d = QSqlDatabase::addDatabase("QSQLITE");//以sqlite为例
d.setDatabaseName("XX.db");//文件路径
QSqlQuery q;
q.prepare("insert into Table(ID, Data) values(:ID, :Data)");//这里有多种写法,可查Qt文档
q.bindValue(":ID", 1);
q.bindValue(":Data", QVariant(byteArray));
q.exec();
结构体的读取
读取就很简单了:
QSqlQuery q("select * from Table");
while (q.next())
{
QByteArray byteArr = q.value("Data").toByteArray();
MyStruct mstr;
memcpy(&mstr, byteArr.data(), sizeof(MyStruct));
}