【发布时间】:2018-09-20 21:23:03
【问题描述】:
我正在处理一些用 Classic ASP / VBSCript 编写的遗留代码。
代码处理通过 HTML 表单提交的数据,并在下一行中断。
' Get all input questions
Set inputQuestions = getListOfInputQuestionsForPage("additional")
函数getListOfInputQuestionsForPage(pageName)定义如下:
Function getListOfInputQuestionsForPage(pageName)
' Instantiate Command
Set objCommand = Server.CreateObject("ADODB.Command")
' Inform Command what Connection to use.
Set objCommand.ActiveConnection = myConn
' SQL Query to run
objCommand.CommandText = "SELECT QUESTION_TABLE.PK_QUESTION AS ""QUESTION_ID"", QUESTION_TABLE.QUESTION AS ""QUESTION"", QUESTION_TABLE.INPUT_TYPE AS ""TYPE"", QUESTION_TABLE.IS_FOR_ALL_CUSTOMERS AS ""FOR_ALL_CUSTOMERS"" FROM QUESTION_TABLE WHERE QUESTION_TABLE.DISPLAY_PAGE = '" & pageName & "' ORDER BY PK_QUESTION ASC"
' Execute SQL and return result
Set getListOfInputQuestionsForPage = objCommand.Execute()
End Function
奇怪的是我收到以下错误:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'getListOfInputQuestionsForPage'
/site/path_to_file/edit_additional.asp, line 110
我所做的只是试图从数据库中获取一些数据。而且我知道数据存在并返回了一个 RecordSet。
【问题讨论】:
-
检查你的函数返回什么:
Set rs = objCommand.Execute : MsgBox TypeName(rs) : Set getListOfInputQestionsForPage = rs. -
谢谢安斯加尔。那个代码会去哪里?你能详细说明一下吗:)谢谢
-
显然,它应该替换函数的最后一行。不过,我不确定
MsgBox是否可以在 ASP 中工作,因此您可能需要用一些日志记录指令替换它。 -
我试过你的代码,不幸的是它没有工作。另外,我已经知道我的函数返回了什么,因为在另一个页面上我正在使用相同的函数并且它正在返回记录集。