Несоответствие типов тайн при работе с ASP - PullRequest
1 голос
/ 19 сентября 2009

Я никогда не разрабатывал 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 ]

1 голос
/ 20 сентября 2009

В моей книге, 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
0 голосов
/ 26 сентября 2009

Если одна и та же переменная строки запроса get используется более одного раза, классический ASP обрабатывает ее как список через запятую.

Таким образом, URL-адрес foobar.asp? Id = 1 & id = 2 & id = 3 означает, что переменные id заканчиваются на «1,2,3» - строка, а не массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...