Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ sqlite c++;和无符号整数操作_C++_Sqlite - Fatal编程技术网

C++ sqlite c++;和无符号整数操作

C++ sqlite c++;和无符号整数操作,c++,sqlite,C++,Sqlite,与……有关的问题。好的,现在我用bind_text函数绑定我的无符号整数。在此之后,在INTEGER列中,我看到正确存储的无符号整数值。现在,我想从基数接收到C++变量无符号int xxx < /COD>。最好的方法是什么?请求作为文本,然后转换为ui?或者请求为sqlite\u int64,然后以某种方式转换为unsigned int?请添加一些示例代码。谢谢。绑定无符号整数的正确方法只有一种:使用: 要从查询中获取此类值,请使用: 这个问题的答案太晚了。我会帮助处理这个问题的人。解决方案可能

与……有关的问题。好的,现在我用
bind_text
函数绑定我的
无符号整数。在此之后,在
INTEGER
列中,我看到正确存储的
无符号整数
值。现在,我想从基数接收到C++变量<代码>无符号int xxx < /COD>。最好的方法是什么?请求作为文本,然后转换为
ui
?或者请求为
sqlite\u int64
,然后以某种方式转换为
unsigned int
?请添加一些示例代码。谢谢。

绑定无符号整数的正确方法只有一种:使用:

要从查询中获取此类值,请使用:


这个问题的答案太晚了。我会帮助处理这个问题的人。解决方案可能非常简单,您可以对表使用UNSIGNED BIGINT或UNSIGNED INT数据类型,然后将数据作为有符号值插入(例如uint64_t v=xxx;insert(int64_t)v)。之后,您可以使用splite3_column_int64函数将数据类型转换回来。(例如,uint64_t rv=(uint64_t)splite3_column_int64(stmt,0);)
파이팅~!

为什么要用
sqlite3\u bind\u text()
绑定而不是
sqlite3\u bind\u int()
?@特洛伊木马,因为valuer是
无符号的
,如果用
\u int()
函数绑定,它会显示为负数。我假设
sqlite3\u bind\u int()
也可以工作,除了数字>0x80000000在数据库中显示为负数,但使用
sqlite3\u column\u int()
可以很好地转换回来之外,它不起作用,因为访问这些值的任何其他方法都不会产生相同的值。只有(错误)使用符号位的值,所以大多数值都可以。
unsigned int key = ...;

sqlite3_bind_int64(stmt, 1, key);
key = (unsigned int)sqlite3_column_int64(query_stmt, 0);