1

我在使用 ADO 时遇到了一些麻烦。我已经部署了一个使用 Access 的数据库应用程序。随着不同版本的发布,数据库表有不同的字段,一些添加了一些删除了等等。我无法开始工作的是如何在数据库中添加一个 BOOLEAN 字段。

出于升级目的,我使用标准 sql 查询组件和如下所示的 sql:

ALTER TABLE XXX ADD COLUMN YY BOOLEAN

虽然这适用于其他数据类型,例如 VARCHAR、INTEGER、DOUBLE 等,但它不适用于 BOOLEAN。我怀疑这是 Access 的错,布尔值是 YES/NO,但谁知道呢。

另外,如何使用 TADOTable 向表中添加字段?

提前致谢。

4

4 回答 4

6

在 Microsoft Access SQL 中,BIT 列直接对应 YES/NO 字段。如果您稍后尝试将其转换为 SQL Server,我会遇到一个奇怪的行为,我的建议是执行以下操作:

当您对这个字段进行检查时,请记住语法应该是 (FIELD <> 0) 用于检查 TRUE,而 (FIELD = 0) 用于检查 false。SQL Server 不理解 TRUE/FALSE 的概念,访问时返回 -1 和 0,而在 SQL Server 中返回值为 1 和 0。

在访问中,如果您还将该字段设置为非空,它只会呈现一个复选框。如果允许空值,那么它将显示 0 或 -1 或空。

于 2009-04-24T17:56:02.627 回答
2

不确定 Access,但 SQL Server 使用位类型来处理布尔值。

于 2009-04-24T14:17:48.860 回答
1

尝试 BIT,而不是 BOOLEAN

于 2009-04-24T14:17:24.837 回答
0

您不能对 BIT(或您自己的自定义)类型执行很多操作,更好的是 TINYINT(1) 并使用 0 / 1。

于 2009-04-24T14:34:07.277 回答