sqlite3中的 integer对应SOCI的dt_integer
此时integer在查询的时候 int只拿到32位数值,int64则会崩溃
#define SELECT_HDBINFO_BY_TIME ("select * from HV_INDEX")
rowset rs = (sql.prepare << SELECT_HDBINFO_BY_TIME);
for (const row& rowData : rs)
{
rowData.
//HVarIndex hVarIndex1;
//rowData.row<HVarIndex>(hVarIndex1);
HVarIndex hVarIndex = { rowData.get<std::string>(0),
rowData.get<Ino_Int64>(1), rowData.get<Ino_Int64>(2)};
rowData.get<Int64>(1) 程序崩溃,提示不支持int64
rowData.get<int>(1) 只能拿到32位数据
2中方案:
1、将sqlite create table字段改为unsigned longlong
2、修改sqlite3中的数据类型 让其支持int64
最终将其改为craete sqlite3 table中的integer改为BIGINT,即可支持int64
rowData.get<Int64>