function 返回值数组 调用问题

gxq323 2009-07-22 03:22:34

<%
function f1(user)
redim arrs(k)
k=0
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from buyer where users='"&user&"'",conn,1,1
do while not rs.eof
if rs("buyer")<>"" then
arrs(k)=rs("buyer")
k=k+1
end if
rs.movenext
loop
f1=arrs
rs.close
set rs=nothing
end function
%>

为什么调用不成功也不报错
直接调用 f1("admin")没有显示
如果前面加段其他功能代码的话他就调用成功?急给好好讲讲
加这段他就成功
dim arr(2)
k=0
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from grade",conn,1,1
do while not rs.eof
arr(k)=rs("minmoney")
k=k+1
rs.movenext
loop
rs.close
set rs=nothing
...全文
119 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxq323 2009-07-22
  • 打赏
  • 举报
回复
哦,hookee老大发的我再研究研究,cursorLocation 汗,没用过
gxq323 2009-07-22
  • 打赏
  • 举报
回复
谢谢toury,弄懂了,受益匪浅啊,马上结贴
hookee 2009-07-22
  • 打赏
  • 举报
回复

<%
function f1(user)
dim arr()
k=0
set rs=server.CreateObject("adodb.recordset")
rs.cursorLocation = 3
rs.open "select * from buyer where users='"&user&"'",conn,1,1
redim arr(rs.recordCount-1)
do while not rs.eof
if rs("buyer") <>"" then
arrs(k)=rs("buyer")
k=k+1
end if
rs.movenext
loop
f1=arrs
rs.close
set rs=nothing
end function
%>

gxq323 2009-07-22
  • 打赏
  • 举报
回复
先试试,谢谢了
toury 2009-07-22
  • 打赏
  • 举报
回复
怎么只看见你的redim数组,没看见你什么时候dim数组了?

<%
dim ss
ss=f1("admin")'这个ss就是数组了

function f1(byval user)
dim s
set rsGXQ323=conn.execute("select * from [buyer] where [users]='"&user&"'")
do while not rs.eof
if len(rsGXQ323("buyer")&"")>0 then
if len(s)=0 then s=rsGXQ323("buyer")&"" else s=s&"|||"&rsGXQ323("buyer")&""
end if
rsGXQ323.movenext
loop
rsGXQ323.close
set rsGXQ323=nothing

if len(s)>0 then
f1=split(s,"|||")
else
f1=Array("无数据")
end if
end function
%>
gxq323 2009-07-22
  • 打赏
  • 举报
回复
我现在想调用它的话必须是这样的
dim arr(2)
k=0
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from grade",conn,1,1
do while not rs.eof
arr(k)=rs("minmoney")
k=k+1
rs.movenext
loop
rs.close
set rs=nothing
x=ubound(f1("admin"))
redim ss(x)
for i=0 to x
ss(i)=f1("admin1")(i)
next
去掉前面的就不行了,郁闷
gxq323 2009-07-22
  • 打赏
  • 举报
回复
<%
function f1(user)
dim arr()
k=0
redim arrs(k)
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from buyer where users='"&user&"'",conn,1,1
do while not rs.eof
if rs("buyer")<>"" then
arrs(k)=rs("buyer")
k=k+1
end if
rs.movenext
loop
f1=arrs
rs.close
set rs=nothing
end function
%>
这不对吧,还是没效果啊,直接调用还是不行啊,我就是想直接调用它让它显示啊
hookee 2009-07-22
  • 打赏
  • 举报
回复
redim arrs(k) 之前要dim arr()并且初始化k

gxq323 2009-07-22
  • 打赏
  • 举报
回复
x=ubound(f1("admin"))
redim ss(x)
for i=0 to x
ss(i)=f1("admin1")(i)
next
gxq323 2009-07-22
  • 打赏
  • 举报
回复
直接调用发错了,不好意思,

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧