ifnull还不足以测试数值rs

时间:2016-08-11 09:51:25

标签: asp-classic

我有一个函数,如果输入无法转换为整数,则该函数返回零。

但有时它会失败,如果结果集中的字段不是正确的值,无论它是什么。

Function nulblank(str)
    dim val
    if IsNull(str) then
        val=0
    else
        str = trim(str)
        if isNumeric(str) then
            val = cDbl(str)
        else
            val = 0
        end if
    end if
    nulblank = val
end function

我在str = trim(str)

上收到错误0x80020009

此功能仅在

上调用
set rs = conn.execute(sql)
i = nulblank(rs("somefield"))

我怎样才能使这个功能"故障保护",所以它永远不会死,但在"坏"上返回0值?

我想我可以在接下来的错误恢复上做,如果Err.Number<>然后是什么。

但是什么可以在rs(" somefield")中,它不是null,但不能修剪()'

1 个答案:

答案 0 :(得分:0)

该错误通常与空记录集有关。

在尝试检索列值之前,您应该检查记录集是否有一行,例如:

set rs = conn.execute(sql)
if not rs.eof then
    i = nulblank(rs("somefield"))
end if