仓酷云

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

[学习教程] ASP网页设计减速你数据库和程序开辟的存储历程

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
ASP脚本是采用明文(plaintext)方式来编写的。程序|存储历程|数据|数据库假如你是一个数据库事情者,大概是一个代码编写者,你是不是为填写那些字段懊恼呢?少还好说,假如到达几十个,你必定会被弄得昏头晕脑,一下就得到了编写代码的康乐。

好了,用以下的办法使你省略了填写字段的懊恼,一会儿就可以够到达编写代码的性低潮!其实是居家旅游,必备良药,赛过伟哥!

第一步,创建视图!
createVIEWColAS
select
b.NameColName,
b.ColID,
c.NamexColtype,
(selectNamefromsystypeswherexUserType=c.xTypeandxType=xUserType)ColType,/*convertuserdefinetypetosystemtype*/
b.LengthSizes,
b.PrecPrec,
b.xScaleScale,
convert(bit,b.status&8)Nulls,
a.NameObjectName,
a.TypeObjectType
fromsysobjectsA,syscolumnsb,systypesc
wherea.typein(U,V,P)anda.Id=b.Idandb.Xusertype=c.Xusertype

第一步,创建存储历程!
CREATEPROCEDUREsysgetcol
@objectnameChar(80)
AS
declare
@objecttypechar(10)
select
@objecttype=objecttype
fromCOL
whereobjectname=@objectname

if@@ROWCOUNT=0
begin
PrintInternalError(001):
Printnotfoundobject:+Rtrim(@objectname)+!
Return-1
end


select
colname,
colTypetypes,
xColType,
sizes,
prec,
scale,
colid,
Nulls
Into#temp
fromCOL
whereobjectname=@objectname
orderbycolid
--PATINDEX(%pattern%,expression)

--ScriptobjectStructure
if@objecttype=U
begin
selectCreateTable+Rtrim(@objectname)+(
unionall
select+Rtrim(colname)++RTrim(xColType)+
CasexColTypewhenCharthen(+RTrim(Convert(Char(3),sizes))+)
whenNumericthen(+RTrim(Convert(Char(3),Prec))+,+RTrim(Convert(Char(3),Scale))+)
whenVarcharthen(+RTrim(Convert(Char(3),sizes))+)
whenncharthen(+RTrim(Convert(Char(3),sizes))+)
whennvarcharthen(+RTrim(Convert(Char(3),sizes))+)
else
end+
casenullswhen0thenNotNullelseend+,
from#temp
unionall
select)
end

/*Buildingselectstatement*/

selectCREATEVIEWview_+RTrim(@objectname)+AS+Char(10)+select
unionall
select+RTrim(colname)+,from#temp--orderbycolid
unionall
selectfrom+RTrim(@objectname)

/******update#tempsetsizes=NullwhereTypesChar******/
--bulidprocedureparameter
selectCREATEPROCEDURE+RTrim(@objectname)+_Update
UNIONALL
select
@+RTrim(colname)++RTrim(xColType)+
CasexColTypewhenCharthen(+RTrim(Convert(Char(3),sizes))+),
whenNumericthen(+RTrim(Convert(Char(3),Prec))+,+RTrim(Convert(Char(3),Scale))+),
whenVarcharthen(+RTrim(Convert(Char(3),sizes))+),
whenncharthen(+RTrim(Convert(Char(3),sizes))+)
whennvarcharthen(+RTrim(Convert(Char(3),sizes))+)
else,
end
from#temp
--orderbycolid
UNIONALL
selectAS
/*Buildingupdatepart*/
UNIONALL
selectupdate+RTrim(@objectname)+set
UNIONALL
select+RTrim(colname)+=@+RTrim(colname)+,from#temp--orderbycolid
UnionAll
selectwhere
UnionAll
select+RTrim(colname)+=@+RTrim(colname)+andfrom#temp--orderbycolid
UNIONALL
/*update#tempsetsizes=Null*/

/*BuildingInsertstatement*/
selectif@@ROWCOUNT=0
UNIONALL
selectinsertinto+Rtrim(@objectname)+(
UNIONALL
select+RTrim(colname)+,from#temp--orderbycolid
UNIONALL
select)
UNIONALL
selectvalues(
UNIONALL
select@+RTrim(colname)+,from#temp--orderbycolid
UNIONALL
select)

select+RTrim(colname)+=Trim(request("+RTrim(colname)+"))from#temp

select+RTrim(colname)+=Trim(rs("+RTrim(colname)+"))from#temp--orderbycolid

select.parameters(+Rtrim(colid)+)=+colnamefrom#temp--orderbycolid
GO


第三步,利用该存储历程!
假定你的数据库里有一个叫做Nta_base_member的表
CreateTableNta_base_member(
m_idbigintNotNull,
m_typesmallint,
m_statesmallint,
memberidbigint,
travelco_idbigint
)

翻开你的查询剖析器,键进
sysgetcolNta_base_member

然后按ctrl+t,然后按F5,看看查询剖析器呈现甚么东东?

所影响的行数为5行)


----------------------------------------------------------------------------------------------------------------------------------------------</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-20 07:38:25 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
爱飞 该用户已被删除
板凳
发表于 2015-1-20 23:49:06 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
柔情似水 该用户已被删除
地板
发表于 2015-1-30 07:43:18 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
海妖 该用户已被删除
5#
发表于 2015-2-1 10:15:35 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
6#
发表于 2015-2-7 03:09:03 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
小女巫 该用户已被删除
7#
发表于 2015-2-20 00:43:29 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
简单生活 该用户已被删除
8#
发表于 2015-3-6 15:54:14 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
深爱那片海 该用户已被删除
9#
发表于 2015-3-13 04:08:14 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
admin 该用户已被删除
10#
发表于 2015-3-20 12:10:40 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 05:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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