处理ASP时神秘类型不匹配

时间:2009-09-19 17:23:54

标签: sql-server arrays asp-classic

在我的生活中,我从未开发过ASP,但是客户希望在他的一个非常糟糕的ASP程序中增加一些额外的功能。我试图在短时间内尽可能多地接受,但我在这里遇到了一个神秘的错误。

当我在本地系统上对此代码进行单元测试时,它可以正常工作。但是,在他们的网络服务器上,执行下面的代码时,我在“Item_IDs = ...”这一行上遇到类型不匹配的问题

有什么建议吗?

谢谢! -DREW

Item_IDs = RetrieveSerialItem_IDs(Serial_IDs(y))

function RetrieveSerialItem_IDs(Serial_ID)

    '' # Execute query and return data in an array
    strQuery = "SELECT Item_ID FROM Store_Items_Serials WHERE Serial_ID = " & Serial_ID & ";"
    RetrieveSerialItem_IDs = RunSelectQuery(strQuery, "Item_ID")

end function '' # RetrieveSerialItem_IDs

'' # Function to execute a SELECT query from our database
'' # returns: the results of the query as a one-dimensional array -- do not use for multiple-column select statements
function RunSelectQuery(strSelectQuery, strColumnName)

2 个答案:

答案 0 :(得分:1)

在我的书中,90%的时间,这种错误都是因为sql很糟糕。

我看到的其他问题是,未声明您的变量(可能在服务器中而不是在您的开发计算机中需要)

如何在ASP classic中调试:

Item_IDs = RetrieveSerialItem_IDs(Serial_IDs(y))

function RetrieveSerialItem_IDs(Serial_ID)

    ''//Please, declare your variables
    dim strQuery

    ''//Execute query and return data in an array
    strQuery = "SELECT Item_ID FROM Store_Items_Serials WHERE Serial_ID = "
    strQuery = strQuery  & Serial_ID & ";"

    response.write strQuery
    response.end

    ''// Now, paste the StrQuery text obtained in your sql console and test it


    RetrieveSerialItem_IDs = RunSelectQuery(strQuery, "Item_ID")

end function

答案 1 :(得分:0)

如果同一个查询字符串变量被多次使用,则经典ASP会将其视为以逗号分隔的列表。

因此,foobar.asp的网址?id = 1& id = 2& id = 3表示id变量最终为“1,2,3” - 字符串,而不是数组。