1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

求教`~~

本帖由 小狼2006-04-29 发布。版面名称:新人报道

  1. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    function xx(b)
    dim sql,num,rs,insect_num,num1
    set Rs = Server.CreateObject("ADODB.Recordset")
    sql="select * from per_client where num like '%b%'"
    rs.open sql,cn,1,1
    if rs.eof then
    num=000000
    num1="b"&"num"
    else
    do while not rs.eof
    num=num+1
    rs.movenext
    loop
    num=num+1
    for i=1to(6-clng(len(num)))
    insect_num="0" & num
    next
    num1="b" & num
    end if
    end function

    老函数,我主要想问问我这个FUNCTION 的值是为num1吗?
    整个函数是没有错误的~~
    当我把function去掉的时候`~
    在我的页面中使用 ZZ=NUM1~
    ZZ是可以使用的,他的值为b带数值
    `~
    但是我一旦加上FUNCTION,
    然后使用ZZ=xx(b)
    页面就会显示错误
     
  2. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    啥错,那行?
     
  3. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    我只是想问大家,我的这个函数的值是返回到NUM1
    吗?
    程序是没有错误的
     
  4. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    sql="select * from per_client where num like '%b%'"

    没错?变量B可以这么写吗?这只是确定num字段中有b的纪录吧
     
  5. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    sql="select * from per_client where num like '%"&b&"%'"
     
  6. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    取出含B的num
    而且B的num可以以后可以累加~
     
  7. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    不是。我是说你这么写那么不管你传递什么值。他都是找包含B的字段吧。
     
  8. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    是寻找num中含B字段的值,
    不是所有字段含b字段的值
     
  9. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    我只想知道我的函数的结果是不是返回到NUM1`
    如果是的话,为什么我用FUNCTION会报错误
     
  10. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    我觉得问题太多了,不知道对不对

    整个函数,没有return,如何获取返回值?

    b和num都是变量,那么num1="b"&"num"是不是应该写成num1=b&num?

    num=000000这个是不是应该写成num="000000"

    sql="select * from per_client where num like '%b%'"这里面的b是字符还是变量,如果是变量,那么这句话是错的,如风狼所说

    for i=1 to (6-clng(len(num))) 这里先对num取长度然后换为LONG型,是什么目的?num的数值是0,经过do循环,如果记录超过100万条,那么num才会达到区区7位数,取长度还转换为LONG型就不必了吧

    如此如此。。。
     
  11. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    那你能帮我再写这么个程序 吗?
     
  12. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    不知道这个程序实现什么功能,也看不太懂你要实现什么功能
     
  13. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    我要做的是这样一个功能,
    做一个FUNCTION函数,
    他能实现一个自动编号功能,
    自动编号的第一位是字母,
    也就是我的自第一个编号是"B000000"
    第二个编号是"B000001"
    其中B的值可以改变
     
  14. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    编号是给什么编号,是每添加一条记录自动加上这个编号?还是给现在数据库里已有的数据编号?

    编号存储在什么地方?单独作为一个字段去存储?还是仅仅作为一些数值显示在WEB上?
     
  15. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    每舔加一条记录就增加一个编号,
    然后将编号存贮在数据库中
     
  16. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    请大家帮忙写写看,
     
  17. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    那样的话应该在insert into前面确定这个编号的值

    然后将这个值随着insert一起添加到数据库里

    log_value = fun("b") '调用

    函数框架如下:

    funtion fun(first_char)

    set Rs = Server.CreateObject("ADODB.Recordset")
    sql="select * from per_client where num like '%" & first_char & "%' order by log_time DESC;" '查找同类编号
    rs.open sql,conn,3,3

    if rs.eof then
    num1 = first_char & "000000" '没有同类编号则从000000开始
    return num1 '返回编号
    else
    temp_num = right(rs("num"),6) + 1 '有的话取得数值部分并加1
    for i =1 to (6 - len(num))
    insect_num = "0" & temp_num '给整数前补0
    next
    return (first_char & insect_num) '返回编号
    end if

    end function
     
  18. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    老大,有问题啊`~
    调试的结果是,return未定义