来看一段asp,分不低

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:26:41
function chkboardmaster_1(boardid)
dim brs,ckboardmaster
chkboardmaster=false '1为什么先令chkboardmaster=false?不管它不行么?
if master then '2请留意这个if到哪里结尾?是不是少了end if?
chkboardmaster=true
else if boardmaster then
sql="select boardmaster,boardid from board where boardid="&boardid
'3感觉应该写成:sql="select boardmaster,boardid from board where boardid="&boardid""才对啊,如果boardid不是文本

set brs=server.createobject("adodb.recordset")
set brs=conn.execute(sql) '4 brs是个数组是吧 这里把所有符合的boardmaster,boardid都放到brs中是么?
if brs.eof and brs.bof then
chkboardmaster=false
else
ckboardmaster=split(brs(0),"|") '5为什么是brs(0),不是brs(1)或其他?brs(0)中为什么会有“|”?
for i=0 to ubound(ckboardmaster)
if trim(ckboardmaster(i))=trim(membername) then
chkboardmaster=true
else
chkboardmaster=false
end if
if chkboardmaster then exit

楼上的说错了很多啊,我来说说!

1,我看了下这个函数,这里不要应应是可以的,不过我们应养成初始化变量的习惯。
2,这里没有少end if,最后一个end if和这里匹配(注:if chkboardmaster then exit for 这句这里不用end if)
3,他这里这样写说明那个参数应该是字符串的,不是也会自动转换类型的。
4,brs是一个数据结合,和数组是不同的,它有recordcount属性MoveNext方法(还有很多),其实就是一个数据库结果对象实例。
5,为什么为brs(0),这里brs(0)等同于brs(boardmaster),这是这个对象的特点,可以通过键值或索引访问,索引是从0开始,因为查的是boardmaster,boardid ,所以brs(0)等同于brs(boardmaster)
为什么brs(0)会有“|”,这就是程序编写者的目的了,用一个字段保存多个结果,用“|”分开,我们会经常用到这种方法

-----------------------

你好,很高兴为你回答

第3个问题这里我大意了,他这里应该理解是一个自动编号类型,也就是是一个长整型字段

第4问这里是获得上一个sql语句执行的结果数据对象,不是一个新建的,而是数据库里已经有了。并且这里查出的结果可能有多条(如果第3个问题那里是自动编号类型就只有1条)

第5问你理解得很正确

最后你说的2问那里,我不太清楚else if boardmaster then 这里,如果是else if分开的话就不会多end if,如果是elseif就会多了一个end if

另楼上的朋友,我没说你完全错,但你有些的确说错了,难道你没发现我说的有很多和你说的不同吗??

我晕.楼下说话太不负责了吧,我错了很多,请一一批出啊,我看你说的才是不怎么样啊.

function chkboardmaster_1(boardid)
看名称应该是检查一个用户是不是管理员的函数

chkboardmaster=false