仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 369|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:在ASP中利用SQL语句之8:随机数

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;随机|语句创建随机天生的HTML代码是一件相称简单完成的ASP特征。你大概创立过“逐日一帖”、转动告白等等,只必要略加粉饰就会令你的网站日久弥新。

对存储在数据库中的数据来讲,随机数特征能给出下面的效果,但它们大概太慢了些。你不克不及请求ASP“找个随机数”然后打印出来。实践上罕见的办理计划是创建以下所示的轮回:
Randomize
RNumber=Int(Rnd*499)+1

WhileNotobjRec.EOF
IfobjRec("ID")=RNumberTHEN

...这里是实行剧本...

endif
objRec.MoveNext
Wend

这很简单了解。起首,你掏出1到500局限以内的一个随机数(假定500就是数据库内纪录的总数)。然后,你遍历每纪录来测试ID的值、反省其是不是婚配RNumber。满意前提的话就实行由THEN关头字入手下手的那一块代码。假设你的RNumber即是495,那末要轮回一遍数据库花的工夫可就长了。固然500这个数字看起来年夜了些,但比拟更加安定的企业办理计划这仍是个小型数据库了,后者一般在一个数据库内就包括了不计其数笔记录。这时候候不就逝世定了?

接纳SQL,你就能够很快地找出正确的纪录而且翻开一个只包括该纪录的recordset,以下所示:
Randomize
RNumber=Int(Rnd*499)+1

SQL="SELECT*FROMCustomersWHEREID="&RNumber

setobjRec=ObjConn.Execute(SQL)
Response.WriteRNumber&"="&objRec("ID")&""&objRec("c_email")

不用写出RNumber和ID,你只必要反省婚配情形便可。只需你对以上代码的事情中意,你自可按需操纵“随机”纪录。Recordset没有包括其他内容,因而你很快就可以找到你必要的纪录如许就年夜年夜下降了处置工夫。

再谈随机数

如今你下定决计要榨干Random函数的最初一滴油,那末你大概会一次掏出多条随机纪录大概想接纳必定随机局限内的纪录。把下面的尺度Random示例扩大一下就能够用SQL应对下面两种情形了。

为了掏出几条随机选择的纪录并寄存在统一recordset内,你能够存储三个随机数,然后查询数据库取得婚配这些数字的纪录:
SQL="SELECT*FROMCustomersWHEREID="&RNumber&"ORID="&RNumber2&"ORID="&RNumber3

假设你想选出10笔记录(大概是每次页面装载时的10条链接的列表),你能够用BETWEEN大概数学等式选出第一笔记录和得当数目的递增纪录。这一操纵能够经由过程好几种体例来完成,可是SELECT语句只显现一种大概(这里的ID是主动天生的号码):
SQL="SELECT*FROMCustomersWHEREIDBETWEEN"&RNumber&"AND"&RNumber&"+9"

注重:以上代码的实行目标不是反省数据库内是不是有9条并发纪录。假如你必要包管每次选出10笔记录,那末你必需进一步计划查询。

</p>强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。
只想知道 该用户已被删除
沙发
发表于 2015-1-20 07:06:50 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
admin 该用户已被删除
板凳
发表于 2015-1-28 23:04:21 来自手机 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
小妖女 该用户已被删除
地板
发表于 2015-2-5 22:59:31 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
再见西城 该用户已被删除
5#
发表于 2015-2-14 02:04:11 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-4 04:00:59 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-11 16:14:07 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
谁可相欹 该用户已被删除
8#
发表于 2015-3-19 01:53:33 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
莫相离 该用户已被删除
9#
发表于 2015-3-27 03:10:58 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-4 10:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表