dim xOraField as ADODB.Field
Set xOraField = gbxOraRecordSet.Fields(sFieldName$)
if isnull(xOraField.Value) then
aa = ""
else
......
end if以上代码中,gbxOraRecordSet通过sql文能够正确取到数据,但是如果sFieldName字段当前纪录的内容是null时,执行if isnull(xOraField.Value) then就会导致vb崩溃,报系统内存的错误。这个现象并不是所有机器上都有,所以我想可能是和什么东西冲突了,根据客户的说法数据库并没有脏数据,所以有哪位碰到过类似的,指点一二,不胜感激
Set xOraField = gbxOraRecordSet.Fields(sFieldName$)
if isnull(xOraField.Value) then
aa = ""
else
......
end if以上代码中,gbxOraRecordSet通过sql文能够正确取到数据,但是如果sFieldName字段当前纪录的内容是null时,执行if isnull(xOraField.Value) then就会导致vb崩溃,报系统内存的错误。这个现象并不是所有机器上都有,所以我想可能是和什么东西冲突了,根据客户的说法数据库并没有脏数据,所以有哪位碰到过类似的,指点一二,不胜感激
aa = ""
else
......
end if
aa = ""
else
......
end if====================================
将以上语句改成:aa = xOraField.Value & vbNullString不要用IsNull函数,因为当xOraField.Value是Null时,
xOraField.Value & vbNullString = vbNullString vbNullString: 空字符串""
例:select nvl(field,'') from table
如果字段为空,直接就让查询结果等于""。和在程序里判断再赋值一样,比编程还能方便点。