论坛: 网站建设 标题: 函数嵌套问题 复制本贴地址    
作者: 破贝壳 [cgx]    论坛用户   登录
一个函数函数嵌套另一个函数。结果执行时,这个函数全部都没有执行。。如果把嵌套的那个函数去掉。就可以正常执行。错在哪呢?
下面是这个函数
function site_left()
Dim str
str=str&"<table width=""210""  border=""0"" cellpadding=""0"" cellspacing=""0"">"
str=str&"<tr>"
str=str&"<td width=""203"" align=""center"">
str=str&""&course_left(4,13)&"" //嵌套的函数
str=str&"</td>"
str=str&"</tr>"
str=str&"</table>"
site_left=str
end function
嵌套的函数:
function course_left(sum,leng)
Set rs=conn.execute("course_left sum")//调用存储过程
If rs.eof And rs.bof Then
course_left="暂无消息"
Exit function
End If
Dim str
str=str&"<table width=""98%""  border=""0"" align=""center"" cellpadding=""2"" cellspacing=""2"">"
Do While Not rs.eof
str=str&"<tr>"
str=str&"<td width=""3""><img src=""images/arrow.jpg"" width=""3"" height=""5""></td>"
str=str&"<td class=""top-font"">"&Left(rs.fields(0),leng)&"</td>"
str=str&"</tr>"
str=str&"<tr>"
str=str&"<td colspan=""2"" align=""center""><img src=""images/line2.jpg"" width=""198"" height=""1""></td>"
str=str&"</tr>"
rs.movenext
loop
rs.close
Set rs=Nothing
str=str&"</table>"
course_left=str
End function
调用的存储过程如下:

CREATE proc course_left
@sum int
as
declare @sql varchar(50)
set @sql='select top '+cast(@sum as varchar(500))+' name from course where flag=0 order by id desc'
execute(@sql)
GO



地主 发表时间: 07-04-20 10:25

回复: NetFog [q70213526]   版主   登录
str=str & course_left(4,13)  '不必要的东西尽量不要。

Set rs=conn.execute("course_left sum")  '调用存储过程,你的代码中注释有问题.



如果仍有问题.

在function course_left函数中特定行,使用
Response.Clear
Response.Write SomeParameters  'SomeParameters换成某些变量,看其是否有值输出
Response.End


B1层 发表时间: 07-04-20 13:00

回复: 破贝壳 [cgx]   论坛用户   登录
str=str & course_left(4,13)  '不必要的东西尽量不要。

这个原来试过的,不行。
不是代码注释的问题,我程序里代码没注释,这边是特意注释方便看的。
最后一个方法,可以输出变量值。

B2层 发表时间: 07-04-20 13:34

回复: 破贝壳 [cgx]   论坛用户   登录
问题解决了。是我存储过程和调用没写好
CREATE proc course_left
@sum int
as
declare @sql varchar(50)//这边长度太短。
set @sql='select top '+cast(@sum as varchar(500))+' name from course where flag=0 order by id desc'
execute(@sql)
GO
Set rs=conn.execute("course_left sum")//错
调用存储过程应该是Set rs=conn.execute("course_left "&sum&"")//

B3层 发表时间: 07-04-20 15:17

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号