[英]Problem passing arguments to function in codeigniter
[英]problem passing function arguments vbscript
I have a little problem with vbscript I have declared some function with passing the result set from a sql query like an argument and the problem is that the function showData accept the argument like an object not like a resultset
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 的新手。 這是 function showData 與 object objRS 中的錯誤
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'EOF'
/index.asp, line 57
主要問題是返回 object 引用的函數必須使用Set
作為其返回值:
function get_rows_from_to(from,size,conn)
' ...
set get_rows_from_to = result
end function
其他一些提示:
在使用函數之前無需聲明函數。 您可以將所有 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。 之前通過Server.CreateObject()
創建一個空白是沒有意義的。 實際上,您所有的Set xyz = Server.CreateObject("ADODB.Recordset")
行都是多余的。
在函數中為返回值創建一個單獨的變量是沒有意義的。 function是它的返回值:
function getFoo()
getFoo = "foo"
end function
最后的兩個提示:
Option Explicit
。Server.HtmlEncode()
。 這比所有其他技巧更重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.