问题传递函数参数vbscript

| 我对vbscript有一点问题 我已经声明了一些函数,该函数通过将sql查询的结果集传递给参数,而问题是函数showData像对象一样接受参数,而不像结果集那样
function get_count(conn)
    dim query, size
    Set query = Server.CreateObject(\"ADODB.Recordset\")
    set query = conn.Execute(\"select count(*) as size from doctor\")
    size = query.Fields(\"size\")
    get_count = size
end function
function get_rows_from_to(from,size,conn)
    dim result
    Set result = Server.CreateObject(\"ADODB.Recordset\")
    set result = conn.Execute(\"SELECT name, surname,family,egn,citizenship FROM doctor limit \"&from&\",\"&size&\"\")
    get_rows_from_to = result
end function
Sub showData(objRS)
    dim isEven
    isEven = false
    Response.Write \"<table>\"
    Response.Write \"<tr>\"
    Response.Write \"<th >Име</th><th >Презиме</th><th >Фамилия</th><th >ЕГН</th><th >Гражданство</td>\"
    Response.Write \"</tr>\"
    While Not objRS.EOF
        Response.Write \"<tr>\"
        if isEven then
            Response.Write \"<td style = \'background-color :#e9ebf2\'>\"&objRS.Fields(\"name\")&\"</td>\"&_
                \"<td style = \'background-color :#e9ebf2\'>\"&objRS.Fields(\"surname\")&\"</td>\"&_
                \"<td style = \'background-color :#e9ebf2\'>\"&objRS.Fields(\"family\")&\"</td>\"&_
                \"<td style = \'background-color :#e9ebf2\'>\"&objRS.Fields(\"egn\")&\"</td>\"&_
                \"<td style = \'background-color :#e9ebf2\'>\"&objRS.Fields(\"citizenship\")&\"</td>\"
            isEven = false
        else
            Response.Write \"<td>\"&objRS.Fields(\"name\")&\"</td><td>\"&objRS.Fields(\"surname\")&\"</td><td>\"&objRS.Fields(\"family\")&\"</td><td>\"&objRS.Fields(\"egn\")&\"</td><td>\"&objRS.Fields(\"citizenship\")&\"</td>\"
            isEven = true
        end if
        Response.Write \"</tr>\"
        objRS.MoveNext
    Wend 
    Response.Write \"</table>\"
    objRS.Close
end sub
const ROWS_PER_PAGE = 10
Dim sConnection, conn , result,pages,selPage,from,lenght,pos,size

from = 0
lenght = 10
pos = 1
size = 0
sConnection = \"DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=docunion; UID=root;PASSWORD=root; OPTION=3\" 

Set conn = Server.CreateObject(\"ADODB.Connection\") 
Set result = Server.CreateObject(\"ADODB.Recordset\")
conn.Open sConnection

size = get_count (conn)
size = CInt(size)
if size  > 0 then
    pages = size / 10
    lenght = (ROWS_PER_PAGE*pos)
    set result = get_rows_from_to(from,lenght,conn)
    from = lenght + 1
    pos = pos + 1
    showData(result)
else
    Set result = Nothing
    conn.Close
    Set conn = Nothing
end if
谁能告诉我这里的问题在哪里。我是vbscript的新手。这是带有对象objRS的函数showData中的错误
Microsoft VBScript runtime error \'800a01b6\'
Object doesn\'t support this property or method: \'EOF\'
/index.asp, line 57
    
已邀请:
        主要问题在于,返回对象引用的函数的返回值必须使用“ 2”:
function get_rows_from_to(from,size,conn)
    \' ...
    set get_rows_from_to = result
end function
其他一些提示: 在使用函数之前,无需声明它们。您可以将所有函数声明放在脚本的末尾,并将主脚本主体放在顶部。 这是不必要的冗余:
function get_rows_from_to(from,size,conn)
    dim result
    Set result = Server.CreateObject(\"ADODB.Recordset\")
    set result = conn.Execute(\"SELECT name, surname,family,egn,citizenship FROM doctor limit \"&from&\",\"&size&\"\")
    set get_rows_from_to = result
end function
相当于这个
function get_rows_from_to(from,size,conn)
    set get_rows_from_to = conn.Execute(\"SELECT name, surname,family,egn,citizenship FROM doctor limit \" & from & \",\" & size &\"\")
end function 
conn.Execute()
已经返回ADODB.RecordSet。之前通过create7ѭ创建一个空白是没有意义的。实际上,您所有的
Set xyz = Server.CreateObject(\"ADODB.Recordset\")
语系都是多余的。 在函数中为返回值创建单独的变量没有任何意义。该函数是其返回值:
function getFoo()
    getFoo = \"foo\"
end function
最后两个提示: 始终使用
Option Explicit
。 始终在输出到页面的任何数据上使用ѭ11。这比所有其他技巧都更为重要。     

要回复问题请先登录注册