我在使用ADO时遇到了一些麻烦。我已经部署了一个使用Access的数据库应用程序。随着不同版本的发布,数据库表有不同的字段,有些还添加了其他字段等。我无法工作的是如何在数据库中添加BOOLEAN字段。
出于升级目的,我使用标准sql查询组件和一个如下所示的SQL:
ALTER TABLE XXX ADD COLUMN YY BOOLEAN
虽然这适用于其他数据类型,例如VARCHAR,INTEGER,DOUBLE等,但它不适用于BOOLEAN。我怀疑它是Access的错,它的布尔值是YES / NO,但是谁知道。
另外如何使用TADOTable向表中添加字段?
提前致谢。
答案 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。