2009-09-19 49 views
1

我从来没有在ASP中开发过我的生活,但客户希望在他非常可怕的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

我也只记得一些潜在相关的东西。 Item_IDs在for循环的上下文中被重复写入。这可能与它有关吗? – ModeEngage 2009-09-19 18:06:31

+0

粘贴完整的错误消息。 “类型不匹配”这个短语不会告诉任何有关错误实际发生的地方。 – Guffa 2009-09-19 18:46:24

+0

@Guffa我会的,但这家公司聘请的其他承包商暂时已经完全安装了网络服务器。我坚持自己调试这个。 – ModeEngage 2009-09-19 20:25:52

回答

1

在我的书中,90%的时间,这种错误是因为SQL是坏的。

其他问题,我看到的,是你未声明的变量(不知是不是需要在服务器,而不是在你的开发机)

如何在ASP经典的调试:

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 
+0

啊,没有声明我的变量是PHP的搁置。我从现在开始这样做。 – ModeEngage 2009-09-19 20:26:40

0

如果相同的查询字符串变量get的使用不止一次传统的ASP将其视为逗号分隔的列表。

因此,一个URL为foobar.asp?id = 1 & id = 2 & id = 3意味着id变量最终为“1,2,3” - 一个字符串,而不是一个数组。