在ASP有用Dim预先定义变量是非常好的习惯,可我碰到这样的问题:
用存储过程取出一个结果集,其中一个字段为smallDate类型,缺省值为Null,这里为'2001-4-4',做如下判断:
...
<Table>
...
</Table>
<%
IF Not IsNull(oRs("E_DT")) Then
%>
<Table>
...
</Table>
<%
End IF
%>
可显示出来的日期却是1899-12-30
在判断前加上 Response.Write oRs("E_DT")居然为空。
后来改为:
<%
Dim strBack
IF IsNull(oRs("E_DT")) Then
strBack = "0"
Else
strBack = "1"
End IF
%>
...
<Table>
...
</Table>
<%
IF strBack = "1" Then
%>
<Table>
...
</Table>
<%
End IF
%>
就正确了,在判断前加上 Response.Write oRs("E_DT")也显示正常了。
真是怪事,看来用Dim时要当心些,宁愿多加几个变量上去。