Set rslistings = my_conn.Execute(strSQL)
Do while NOT rslistings.Eof
description = strip(rslistings("description"))
rslistings.MoveNext
loop
在strip中 - 正在传递NULL。但是,如果我附加调试器并检查rslistings(“description”)的内容,那么实际的Field对象将通过
这是非常古老的asp代码,但它适用于IIS6,而不是IIS7
编辑这只发生在“description”字段中,是一种文本类型(MySQL数据库)
strip不会做很多事情:
If NOT IsNull(passedinvalue) Then
// do something
Else
// do something else
如果我像strip一样调用strip(rs(“description”)),那么传递Field对象时它永远不会为null。如果我将它分配给另一个值,则将其传入(如strip(mynewvar))然后传递正确的值。
编辑 - 下面要求的数据库位
Set my_conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
my_conn.Open "DSN=mydb"
SQL
Set rs = my_conn.Execute("SELECT description FROM table")
答案 0 :(得分:1)
Field Collection是Recordset对象的默认成员。
Field对象的value属性也是如此。
所以以下两个代码语句是等价的。
Debug.Print objRs.Fields.Item(0) ' Both statements print
Debug.Print objRs(0) ' the Value of Item(0).
如果为变量赋值或将其用作函数中的参数,则会有所不同。
答案 1 :(得分:0)
@Paul:如果strip
在处理之前未检查description
是否为NULL
,则可以执行此操作 -
Do while NOT rslistings.Eof
description = rslistings("description")
If NOT IsNull(description) Then
description = strip(description)
Else
description = "" ' or you could have description = " "
' if you output to screen later on
End If
rslistings.MoveNext
loop