我如何处理vb6 ResultSet中的空值

时间:2015-09-08 14:34:29

标签: vb6

我有来自数据库的返回值,但我无法过滤空值。

With rs_receita
    Do Until .EOF
        Set noaux2 = xml.createElement("Superavit")
        noaux2.Text = IIf(IsEmpty(!Superavit), "", CStr(!Superavit))
        Call noaux.appendChild(noaux2)
      .MoveNext
    Loop
End With
Set rs_receita = Nothing

2 个答案:

答案 0 :(得分:2)

避免IIf这种情况。 IIf始终评估两个表达式。因此,当!Superavit为空时,这将导致错误。

另一方面,单行If语句仅评估要执行的表达式。将它与IsNull()函数结合使用,可以在数据不为空时可靠地为数据赋值:

If IsNull(!Superavit) Then noaux2.Text = "" Else noaux2.Text = CStr(!Superavit)

答案 1 :(得分:1)

在VB6中(对不起!)你可以通过在字段值后附加一个空字符串来强制强制转换为字符串。

编辑:Phew,这篇文章是一个过去的爆炸。它为经典VB6提供了一堆NULL处理思路:https://technet.microsoft.com/en-us/library/Aa175775(v=SQL.80).aspx

我相信以下任何一种都可行:

noaux2.Text = "" & rs("Superavit")

OR

noaux2.Text = vbNullString & rs("Superavit")