c++ - sqlite c++ 和 unsigned int key

标签 c++ sqlite

我正在尝试迁移到 SQLite。在我的 C++ 程序中,我使用 unsigned int key 来存储 id。当我将数据从 C++ 程序序列化到 SQLite,然后将其反序列化或浏览数据库时,我在列中看到负值(带符号)。

我使用此函数在序列化上绑定(bind)无符号整数:

sqlite3_bind_int(stmt, 1, key);

表的键列在创建时声明为INT。也许这是我的错误?

有什么建议如何正确地将无符号整数序列化到SQLite中并在不进行任何更改的情况下将其加载回来吗?

最佳答案

SQLite 的类型系统不支持无符号整数。但您可以使用sqlite3_bind_int64来代替:unsigned int(假设它是32位)可以无损地转换为int64_t

关于c++ - sqlite c++ 和 unsigned int key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305811/

相关文章:

sqlite - Lazarus 中的 TSQLite3Connection 无法读取 sqlite 文件

list - SQLite给出异常

Android:SQLiteConstraintException:错误代码 19:约束失败

iphone - 导入sqlite3.h错误: include of non-modular header inside framework module

ios - 从 TableView 到标签的数组数据

c++ - parent_path()带有或不带有斜杠

c++ - Visual Studio 2013 运行项目两次

c++ - 将捕获lambda作为函数指针传递

c++ - 排序直到我们有排序数组的最低一半

c++ - 为什么这段代码的排序算法不调用类的交换版本?