1.在数据库中有一个表,这个表的同一列里有<NULL>和‘’两种情况,其实,这两种都是代表空的意思,但空值怎么会有两种表达方式去呢?由于这两种表达方式的存在,造成了在应用中的识别困难,如要判别某字段中的一个值是否为空,我们就得这样写才行:
select *
from table1
where ((table1.XXX is not null) and (table1.XXX <>''))在这里where子句也不能写成这个样子:
where ((table1.XXX <>null) and (table1.XXX <>'')) 这样写编译不通过。要是每次都这样判断好麻烦哦,不知大家对这个问题有何见解?同时告诉我一下<NULL>和‘’如何进行相互转换啊?2、在DELPHI里当一个文本框获得光标时就触发的函数时什么?文本框失去光标时触发的函数又是什么?我在对象属性里找不着,我现在需要马上解决这几个问题,请大家帮一下忙,谢谢了。
select *
from table1
where ((table1.XXX is not null) and (table1.XXX <>''))在这里where子句也不能写成这个样子:
where ((table1.XXX <>null) and (table1.XXX <>'')) 这样写编译不通过。要是每次都这样判断好麻烦哦,不知大家对这个问题有何见解?同时告诉我一下<NULL>和‘’如何进行相互转换啊?2、在DELPHI里当一个文本框获得光标时就触发的函数时什么?文本框失去光标时触发的函数又是什么?我在对象属性里找不着,我现在需要马上解决这几个问题,请大家帮一下忙,谢谢了。
一定要是,is null 或者 is not null判断
在取出的时候,null是会有异常的,而''是作为字符来处理的。
你可以这样来判断。
第二个问题,一楼的已回。
''相当于delphi中的'';从存储上看,它有地址,这个地址里面的内容为一个空0
如果是sql可以这样这样判断isnull(FieldName, '') = '',如果是oracle用nvl(FieldName, '')(注nvl参数哪个在前我忘了,4一下就知道了)
建议先直接把这个字段为null的update成'',在数据库里把这个字段的default值设为0。不愿意转换的话也可以用这个来查
select *
from table1
where isnull(table1.xxx,'')<>''
from table1这样就可以使得选出的字段不包含 NULL
Select * From table1 Where Field1 is not null and Field1<>''
第二个问题:
你在EDIT的onEnter(进入)onExit(退出)两个事件中写触发事件就OK了