Основная проблема заключается в том, что функции, которые возвращают ссылку на объект, должны использовать Set
для своего возвращаемого значения:
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. Нет смысла создавать пустой с помощью Server.CreateObject()
раньше. На самом деле все ваши Set xyz = Server.CreateObject("ADODB.Recordset")
строки лишние.
Нет смысла создавать отдельную переменную для возвращаемого значения в функциях. Функция равна ее возвращаемое значение:
function getFoo()
getFoo = "foo"
end function
Два последних совета:
- Всегда Используйте
Option Explicit
.
- Всегда используйте
Server.HtmlEncode()
для любой части данных, которые вы выводите на страницу. Это даже важнее, чем все остальные советы.