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崩溃,报系统内存的错误。这个现象并不是所有机器上都有,所以我想可能是和什么东西冲突了,根据客户的说法数据库并没有脏数据,所以有哪位碰到过类似的,指点一二,不胜感激

解决方案 »

  1.   

    这样试一下.if  xOraField.Value & ""="" then
        aa = ""
    else
    ......
    end if
      

  2.   

    if isnull(xOraField.Value) then
       aa = ""
    else
    ......
    end if====================================
    将以上语句改成:aa = xOraField.Value & vbNullString不要用IsNull函数,因为当xOraField.Value是Null时,
    xOraField.Value & vbNullString = vbNullString vbNullString: 空字符串""
      

  3.   

    你应该先取值,在后再判断是否为Null
      

  4.   

    为什么这个现象在有的机器上没问题呢?而有的机器就不行。如果isnull有问题,应该所有机器都不可以阿
      

  5.   

    还有一种方法,因为你是用oracle,所以可以用oracle的nvl函数在查询时就为其赋值。
    例:select nvl(field,'') from table
    如果字段为空,直接就让查询结果等于""。和在程序里判断再赋值一样,比编程还能方便点。