ASP函数调用问题

weixin_41240366 2020-06-20 10:47:54
以下为数据库中筛选的并重复的数据,我想实现,每重复一次,
ps1 = Recordset1.Fields.Item("SNStart")
ps2 = Recordset1.Fields.Item("SNStart")
ps3 = Recordset1.Fields.Item("SNStart")
...

pe1 = Recordset1.Fields.Item("SNEnd")
pe2 = Recordset1.Fields.Item("SNEnd")
pe3 = Recordset1.Fields.Item("SNEnd")
...

关如何将ps1等Response.Write输出?


<%
a= 1
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))

ps & a = Recordset1.Fields.Item("SNStart")
pe & a = Recordset1.Fields.Item("SNEnd")

Response.Write(ps & a &"<br/>")
Response.Write(pe & a &"<br/>")

a =a + 1
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>
...全文
11847 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaskysun 2020-06-27
  • 打赏
  • 举报
回复
号段的判断数据库做不到,可以用正则或者文本比较来实现,数据库只能做到是否存在重复 (vbs实在是太多年没有碰了,一点都想不起来了,用js给你写一下)
<input name="sn" onblur="ck_sn(this.value)">
<script>
    function ck_sn(val) {
        if (val.length != "LS202003R550ASF0001".length) {
            alert("sn长度错误")
            return false;
        }

        let snArr = [
            ["LS202003R550ASF", 0001, 3000],
            ["LS202004R550ASF", 0001, 9300]
        ]

        for (let sn of snArr) {
            if (val.substr(0, sn[0].length) == sn[0]) { //判断填写的sn的前面几位字符串是否设定的相同,如果相同则
                let num = Number(val.substr(sn[0].length)) ///将填写sn前面相同的剔除,并转为数字
                if(sn[1]<=num && num<=sn[2]){
                    alert("sn符合要求")
                    return true;
                }
            }
        }
        return false
    }
</script>
这样前台做了判读,后台只需要判断是否重复提交即可
weixin_41240366 2020-06-21
  • 打赏
  • 举报
回复
引用 4 楼 hookee 的回复:
SELECT .......
WHERE LEFT('LS202003R550ASF0003', 15) = LEFT(SNStart,15)
AND (
    CINT(RIGHT('LS202003R550ASF0003', 4)) >= CINT(RIGHT(SNStart, 4)) AND 
    CINT(RIGHT('LS202003R550ASF0003', 4)) <= CINT(RIGHT(SNEnd, 4))
)
ASP的查询代码要怎么写?数据库中有N个型号,对应型号下有N个SNStart,SNEnd 数据库结构是: ID //自增 ProductModel //对应产品型号 SNStart //对应SN开始 SNEnd //对应SN结束 我的思路是: 用户提交数据中有,ProductModel以及SN 1,通过ProductModel筛选出此型号下的所有的SNStart以及SNEnd 2,进行比较,SN>=SNStart or SN>=SNEnd,如果OK则通过
hookee 2020-06-21
  • 打赏
  • 举报
回复
SELECT .......
WHERE LEFT('LS202003R550ASF0003', 15) = LEFT(SNStart,15)
AND (
    CINT(RIGHT('LS202003R550ASF0003', 4)) >= CINT(RIGHT(SNStart, 4)) AND 
    CINT(RIGHT('LS202003R550ASF0003', 4)) <= CINT(RIGHT(SNEnd, 4))
)
weixin_41240366 2020-06-21
  • 打赏
  • 举报
回复
引用 2 楼 chinaskysun 的回复:
用数据库自动查询功能 然后判断获取的条数,你这吧所有数据读出来然后再去判断效率太低,也太占用资源了。
我的是Access数据库,这个要怎么操作啊?
chinaskysun 2020-06-21
  • 打赏
  • 举报
回复
用数据库自动查询功能 然后判断获取的条数,你这吧所有数据读出来然后再去判断效率太低,也太占用资源了。
weixin_41240366 2020-06-20
  • 打赏
  • 举报
回复
我想实现的功能 就是我数据库中有N条SN记录,用户提SN过来时,怎么比较SN是否在我数据库中 如:用户提交的是,LS202003R550ASF0003要比较是否在以下号段中 我数据库中有几个号段 号段1:开始:LS202003R550ASF0001 结束:LS202003R550ASF9000 号段2:开始:LS202004R550ASF0001 结束:LS202004R550ASF9300 号段3:开始:LS202005R550ASF0001 结束:LS202005R550ASF5000 号段4:开始:LS202006R550ASF0001 结束:LS202006R550ASF6000 号段...

28,390

社区成员

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

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