Foxtable(狐表)用户栏目专家坐堂 → [讨论]求助


  共有4086人关注过本帖树形打印复制链接

主题:[讨论]求助

帅哥哟,离线,有人找我吗?
kuroneko
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:80 积分:703 威望:0 精华:0 注册:2023/2/22 15:09:00
[讨论]求助  发帖心情 Post By:2023/3/24 20:41:00 [只看该作者]

参考资料写的:foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=32916&ID=4177&skin=1
函数getnumber
执行Function("getnumber","入库表","入库单号")
为什么会造成死循环呀
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:new 1.txt



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/25 9:40:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=50080

调试
……
Do
    cmd.CommandText = "select ISNULL(sqdate,GETDATE() ) AS sqdate,preletter,len,ISNULL(number,0) AS number from getnumberid where Tablename='" & tbname & "' and Colname='" & clname & "'"
    dt = cmd.ExecuteReader()   '读行记录
    'If dt Is Nothing Then  ExecuteReader返回的表格不可能是nothing,至少返回了表结构,只是没有行
    If dt.DataRows.count Then 
        Exit Do '没有行记录则直接退出返回
    End If
    dr = dt.DataRows(0) '取记录的第一行
    numdate=dr("sqdate")
    numpre=dr("preletter")
    numlen=dr("len")
    num=dr("number")
    t = (sqldate - numdate).TotalDays
    If t > 0 Then
        '先读编号,根据编号更新。即使100个用户并发,也只有一个用户能成功申请,其余99个用户会申请失败,将会重新循环申请
        cmd.commandtext = "Update getnumberid Set number =1,sqdate='" & sqldate & "' where Tablename='" & tbname & "' and Colname='" & clname & "' and number=" & num
msgbox(cmd.commandtext ) 把合并后的sql放到数据库里执行,看看有没有结果
        xh=cmd.ExecuteNonQuery()
        num = 1 '新的一天序列号置1
        numdate = sqldate '填上新日期
    Else
        cmd.commandtext = "Update getnumberid Set number =" & num + 1 & " where Tablename='" & tbname & "' and Colname='" & clname & "' and number =" & num
msgbox(cmd.commandtext )
        xh=cmd.ExecuteNonQuery()
        num=num+1
    End If
    
    getbh=numpre.Trim() & "-" & CStr(numdate.year).SubString(2) & CStr(numdate.Month).PadLeft(2 ,"0")  & CStr(numdate.Day).PadLeft(2 ,"0")   & "-" &  CStr(num).PadLeft(numlen ,"0")
    
Loop While xh=0 ‘xh=cmd.ExecuteNonQuery()没有更新到任何东西,说明没有符合条件的数据,xh一直都是0值,会一直循环’
Return getbh


 回到顶部