Luc*_*922 0 sql-server ms-access
当我将位类型数据从 ODBC 链接的 SQL Server 导入 MS Access 数据库时,该值显示不正确。
例如,在SQL Server中,该值为1,但是当它过来时,它就变成了-1。我一直在 Access 数据库中尝试不同的数字配置,但该值仍然是-1.
这只是位类型数据。我该如何纠正这个问题?
MS Access 中的布尔值由有符号整数表示,其二进制表示形式为全一 ( True) 或全零 ( False)。
例如,对于 32 位实现:
11111111 11111111 11111111 11111111 = True = -1
00000000 00000000 00000000 00000000 = False = 0
Run Code Online (Sandbox Code Playgroud)
由于有符号整数使用二进制补码表示形式存储在二进制中,因此全 1 的二进制值意味着符号位也被设置,从而产生整数-1。
相反,SQL Server 的内存效率要高得多,只使用单个位(而不是 MS Access 使用的 32 或 64)来存储布尔值,分别0代表 False 和1代表 True。
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |