access的是/否类型对应的数字是什么?

最近给客户的数据库手动升级,碰到一个疑惑的地方。升级代码是:

with adoquery1 do

begin

   close;

   sql.clear;

   sql.add('update xtsz set column1=:v0');//column类型是bit

   parameters[0].value := false;

   execSQL;

end;

把SQL语句拿到access的查询中执行,v0那地方填false和true都不行,那肯定是0或非0了。到底0为false还是非0为false呢?打开xtsz表中已有的记录,其中有一个column2字段也是bit类型,下面打着勾,说明是true,那我就测试一下:

select iif(column2=0,'false','true') from xtsz

执行结果是true,说明这个判断是对的,等于0的时候为false,非0时候是true。

那还有一个疑问,非0准确吗?什么数字都行?那再测试一下:

select iif(column2=1,'true','false') from xtsz  //column2也有一条记录没有打钩,说明是false

 

执行后返回是false,说明1不是false,再改一个:

select iif(column2=-1,'true','false') from xtsz 

 

执行后返回结果是true,这下对了。再对其他数进行测试返回的都是false,这就说明了,false只对应一个数字,那就是-1.

 

结果出来了,在access中,是/否,也就是bit类型的对应情况是,false=0,true=-1.

你可能感兴趣的:(sql,数据库,测试,Access,Parameters)