function run_proc(byref cmd, proc_name, exec_type)
on error resume next
dim member, param
cmd.activeConnection = ado
cmd.commandText = proc_name
cmd.commandType = adCmdStoredProc
cmd.parameters.refresh
for each member in cmd.parameters
param = replace(member.name, "@", "")
if trim( request(param) &"" ) <> "" then
cmd.parameters(member.name) = request(param)
else
cmd.parameters(member.name) = null
end if
next
cmd.execute , , exec_type
if err.number <> 0 then
run_proc = err.description
else
run_proc = true
end if
end function
function run_proc_return(byref cmd, proc_name, exec_type, byref retval, ret_type)
on error resume next
dim member, param
cmd.activeConnection = ado
cmd.commandText = proc_name
cmd.commandType = adCmdStoredProc
cmd.parameters.refresh
for each member in cmd.parameters
param = replace(member.name, "@", "")
if trim( request(param) &"" ) <> "" then
cmd.parameters(member.name) = request(param)
elseif param = "RETURN_VALUE" then
cmd.parameters("@RETURN_VALUE").direction = adParamReturnValue
cmd.parameters("@RETURN_VALUE").type = ret_type
else
cmd.parameters(member.name) = null
end if
next
cmd.execute , , exec_type
if err.number <> 0 then
retval = empty
run_proc_return = err.description
else
retval = cmd.parameters("@RETURN_VALUE")
run_proc_return = true
end if
end function