ADO数据库表布尔列

时间:2009-04-24 14:14:24

标签: delphi ado field

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

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

ALTER TABLE XXX ADD COLUMN YY BOOLEAN

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

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

提前致谢。

4 个答案:

答案 0 :(得分:5)

在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或空。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

尝试BIT,而不是BOOLEAN

答案 3 :(得分:0)

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