在我的生活中,我从未开发过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)
答案 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” - 字符串,而不是数组。