Iis 7 数据库结果将作为null传递,除非它为';让我们读一读

Iis 7 数据库结果将作为null传递,除非它为';让我们读一读,iis-7,asp-classic,iis-6,resultset,Iis 7,Asp Classic,Iis 6,Resultset,正在传递条带中的-NULL。但是,如果我附加一个调试器并检查rslistings(“description”)的内容,那么实际的字段对象将被传递 这是非常旧的asp代码,但它在IIS6上工作,而不是IIS7 编辑这只发生在“描述”字段中,该字段为文本类型(MySQL数据库) 脱衣舞没什么用处: Set rslistings = my_conn.Execute(strSQL) Do while NOT rslistings.Eof description = strip(rslistin

正在传递条带中的-NULL。但是,如果我附加一个调试器并检查rslistings(“description”)的内容,那么实际的字段对象将被传递

这是非常旧的asp代码,但它在IIS6上工作,而不是IIS7

编辑这只发生在“描述”字段中,该字段为文本类型(MySQL数据库)

脱衣舞没什么用处:

Set rslistings = my_conn.Execute(strSQL)

Do while NOT rslistings.Eof
    description = strip(rslistings("description"))
rslistings.MoveNext
loop
如果我调用strip-like-strip(rs(“description”)),则在传入字段对象时,它永远不会为null。如果我将它赋给另一个值,然后传入(比如strip(mynewvar)),那么就会传入正确的值

按以下要求编辑数据库位

If NOT IsNull(passedinvalue) Then 
    // do something
Else
    // do something else
SQL


@保罗:如果
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

如果为变量赋值或将其用作函数中的参数,则会产生差异

这只发生在文本类型(MySQL数据库)的“description”字段上。您可以发布
条带
子函数
/
的代码吗?我已经添加了条带函数,没有进行太多尝试:
description=strip(rslistings(“description”)和“”)
?是的,这是可行的——但它并不能真正解释为什么现有代码不起作用……啊,你实际上遇到了我的问题。strip要做的第一件事是检查null(如果不是ISNULL(passedinvalue))。但是,传递rslistings(“description”)意味着PassedValue永远不会为null,因为它似乎传递的是字段对象,而不是值。传入rslistings(“description”)。传入的值是正确的-但我不能这样做(要更改的代码太多!)@Paul:这真的很奇怪……您能否发布一下如何创建和设置
my_conn
、您使用的连接字符串以及您正在运行的SQL查询?
Set rs = my_conn.Execute("SELECT description FROM table")
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
Debug.Print objRs.Fields.Item(0)  ' Both statements print 
Debug.Print objRs(0)              '  the Value of Item(0).