当我将位类型数据从 ODBC 链接的 SQL Server 导入我的 MS Access 数据库时,该值显示不正确。
比如在SQL Server中,这个值是1
,但是过来的时候就变成了-1
。我一直在 Access 数据库中尝试不同的数字配置,但该值仍然以-1
.
它只是位类型数据。我该如何纠正?
MS Access 中的布尔值由带符号整数表示,其二进制表示形式为全 1 ( True
) 或全零 ( False
)。
例如,对于 32 位实现:
11111111 11111111 11111111 11111111 = True = -1
00000000 00000000 00000000 00000000 = False = 0
由于有符号整数使用二进制补码表示存储在二进制中,所有 1 的二进制值将意味着符号位也被设置,从而产生整数-1
。
相反,SQL Server 的内存效率要高得多,只使用一位(而不是 MS Access 使用的 32 或 64)来存储布尔值,0
代表 False 和1
代表 True。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句