我在使用ADO时遇到了一些麻烦 . 我已经部署了一个使用Access的数据库应用程序 . 随着不同版本的发布,数据库表具有不同的字段,一些添加了其他字段,等等 . 我无法工作的是如何在数据库中添加BOOLEAN字段 .
出于升级目的,我使用标准sql查询组件和一个如下所示的sql:
ALTER TABLE XXX ADD COLUMN YY BOOLEAN
虽然这适用于其他数据类型,如VARCHAR,INTEGER,DOUBLE等,但它不适用于BOOLEAN . 我怀疑它是Access的错,它的布尔值是YES / NO,但是谁知道 .
另外如何使用TADOTable向表中添加字段?
提前致谢 .
4 回答
不确定Access,但SQL Server使用位类型来处理布尔值 .
在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或空 .
你不能对BIT(或你自己的自定义)类型做很多操作,更好的是TINYINT(1)并使用0/1 .
试试BIT,而不是BOOLEAN