【发布时间】:2020-12-01 05:37:38
【问题描述】:
我对 sqlite3 很陌生,我对在 sqlite3 数据库中插入和读取 uint64 数据有疑问。我正在使用 Sqlite C 接口。
在将数据插入 sqlite3 数据库时,由于我没有看到任何绑定 uint64 数据的函数,所以我使用了 sqlite3_bind_int64。所以在 DB 中的数据将存储到有符号的 int64 中。
我需要将相同的数据读入 uint64。所以我传递给 sqlite3 的查询是这样的:
"从 tblname 中选择 ldtolu(length)"
这里的“ldtolu”是sqlite中的一个扩展,它调用int64_to_uint64,这应该从带有int64符号的DB读取数据,我需要将其转换为uint64。我写道:
static void
int64_to_uint64(sqlite3_context *context, int argc, sqlite3_value **argv)
{
u_int64_t value;
value = (u_int64_t)sqlite3_value_int64(argv[0]);
sqlite3_result_int64(context, (sqlite3_int64) (value));
}
在这里我也只看到“sqlite3_result_int64”,没有像“sqlite3_result_uint64”这样的函数。
谁能帮助我如何绑定 uint64 并读取相同的数据或如何编写扩展来读取 int64 并将其转换为 uint64。
谢谢。
【问题讨论】: