仓酷云

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

[学习教程] ASP编程:“中值排序基数法完成树状布局”的增补...

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。排序“中值排序基数法完成树状布局”的增补

因为一时忽略,形成了此法“关于int范例的基数字段,对原始贴的复兴只能有31个;numeric范例的基数字段,对原始贴的复兴也不克不及凌驾120个”(实践上是关于int型字段,原始贴的复兴第32个以上的树状布局显现入手下手杂乱,关于numeric型的基数字段,原始贴的复兴从121个以上树状布局显现入手下手杂乱――复兴其实不会出成绩),这是因为盘算机存储精度引发的。
我们能够将加贴的存储历程修正一下(加进后面加上**号的行)以限定到了必定深度(在特定命据范例下,基数没法分辩)的时分不再以树状布局显现(而接纳平显――平行显现,如许做固然有点象折中的做法,但在实践上因为扫瞄器等的限定――即便在深度100的时分能以树状布局显现,但从你的扫瞄器看来的树状布局的了局仍旧不是明晰的――屏幕宽度不敷,会折行呗)。

加贴存储历程:

CREATEPROCEDURE[add]@keyidint,@messagevarchar(50)OUTPUT―――keyid为复兴的贴子id号,假如是新贴则为0,@message为堕落信息
AS
IF(@keyid=0)
INSERTINTOforum(rootid,deep,ordernum,……)values(0,0,0,……)
ELSE
BEGIN
DECLARE@rootidint,@idint,@deepint,@begnumfloat,@endnumfloat,@ordernumfloat
SELECT@rootid=0,@id=0,@deep=0,@begnum=0,@endnum=0,@ordernum=0
SELECT@rootid=rootid,@id=id,@begnum=ordernum,@deep=deepfromforumwhereid=@keyid
IF(@id=0)
BEGIN
SELECT@message=要复兴的贴子已被删除!
return
END
ELSE
BEGIN
IF(@rootid=0)SELECT@rootid=@id――复兴的是根贴,取其id为新加贴的rootid
SELECT@endnum=ordernumwhererootid=@rootidandordernum>@begnumorderbyordernum
IF(@endnum=0)
SELECT@ordernum=@begnum+65536――复兴的是最初一贴,能够在此限定@ordernum的局限以防溢出
ELSE
**BEGIN
**IF@endnum-@begnum>1――精度仍能分辩。此处的1为精度标志,合适于基数字段为int,假如基数字段为numeric字段,请酌情选娶(呸呸呸,错别字来了),目标是使基数精渡过小时限定深度增添,制止显现时的杂乱
**SELECT@ordernum=(@begnum+@endnum)/2,@deep=@deep+1――关头,取排序基数中值
**ELSE
**SELECT@ordernum=@begnum――限定深度不克不及再增添,此贴与复兴贴平行显现,假如存在parentid字段,则要取parentid和复兴贴的parentid一样
**END
**INSERTintoforum(rootid,deep,ordernum,……)values(@rootid,@deep,@ordernum,……)
END
END
Select@message=乐成
return

剪枝存储历程改成:

CREATEPROCEDURE[del]@keyidint,@messagevarchar(50)OUTPUT―――keyid为要删除的贴子id号,假如是新贴则为0,@message为堕落信息
AS
DECLARE@rootidint,@idint,@deepint,@begnumfloat,@endnumfloat
SELECT@rootid=0,@deep=0,@begnum=0,@endnum=0,@id=0
SELECT@id=id,@begnum=ordernum,@rootid=rootid,@deep=deepfromforumwhereid=@keyid
IF(@id=0)
BEGIN
SELECT@message=该贴子不存在!"
return
END
ELSE
BEGIN
SELECT@endnum=ordernumfromforumwhererootid=@rootidanddeep<=@deepandordernum>@begnumorderbyordernum
IF(@endnum=0)――要删除的是最初一个子枝或是根贴
DELETEFROMforumwhereordernum>=@begnumand(rootid=@rootidorid=@rootid)
ELSE
**BEGIN
**IF@begnum=@endnum
**DELETEFROMforumwhereid=@idand(rootid=@rootidorid=@rootid)――已受精度限定的枝,只删以后贴
**ELSE
**DELETEFROMforumwhereordernum>=@begnumandordernum<@endnumand(rootid=@rootidorid=@rootid)
**END
END


固然是限定,但此限定应当是必需的,由于实践上的复兴深是不克不及太年夜的(就象我在这里灌到八九层的时分,乞食猫就大呼“打住打住”了,呵呵)

接待会见我的团体主页http://swuse.yeah.net(本来bigeagle是说我这一句话“目标分明啊”)
</p>强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-20 09:14:27 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-29 06:23:01 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
兰色精灵 该用户已被删除
地板
发表于 2015-2-1 16:56:55 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
活着的死人 该用户已被删除
5#
发表于 2015-2-7 10:09:58 | 只看该作者
掌握asp的特性而且一定要知道为什么。
再见西城 该用户已被删除
6#
发表于 2015-2-21 17:55:23 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
再现理想 该用户已被删除
7#
 楼主| 发表于 2015-3-6 20:31:07 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-13 08:10:29 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
透明 该用户已被删除
9#
发表于 2015-3-20 17:22:55 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 02:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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