|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;存储历程1.挪用存储历程的一样平常办法
先假定在sqlserver中有一存储历程dt_users:
CREATEPROCEDURE[dbo].[dt_users]
AS
select*fromusers
return
GO
第一种办法是倒霉用command工具,间接用recordset工具
setrs=server.createobject("adodb.recordset")
sql="execdt_users"
rs.opensql,conn,1,1如许便可
第二种办法是使用command工具
setcomm=server.createobject("adodb.command")
comm.commantype=4
setcomm.activeconnection=conn
comm.commandtext="dbo.dt_users"
setrs=server.createobject("adodb.recordset")
rs.opencomm,,1,1
2.给存储历程传送参数
假如存储过程当中不必参数,而是单一的sql语句,还显现不出挪用存储历程的上风!
好比说一bbs的查询,能够按作者和主题查询!则能够创建存储历程以下:
参数keyword为关头字,choose是选择查询的办法。
CREATEPROCEDURE[dbo].[dt_bbs]
@keywordvarchar(20)=null,
@chooseint=null
as
if@choose=1
select*frombbswherenamelike@keyword
else
select*frombbswheresubjectlike@keyword
return
go
如许我们挪用存储历程时只需将参数传送已往就好了,而省往在asp中来写一段程序
用第一种办法:
setrs=server.createobject("adodb.recordset")
sql="execdt_bbs"&keyword&","&choose&""
rs.opensql,conn,1,1
用第二种办法:
setcomm=server.createobject("adodb.command")
comm.commantype=4
comm.Parameters.appendcomm.CreateParameter("@keyword",adChar,adParamInput,50,keyword)
comm.Parameters.appendcomm.CreateParameter("@keyword",adInteger,adParamInput,,choose)
setcomm.activeconnection=conn
comm.commandtext="dbo.dt_bbs"
setrs=server.createobject("adodb.recordset")
rs.CursorType=3
rs.opencomm,,1,1
3.进一步会商
对照下面我所说的两种在asp种挪用存储历程的办法,
第一种办法必要工具少,但recordset工具撑持的属性少了良多,好比说:rs.recordcount,rs.pagecount,rs.absolutepage这些属性
都不撑持,以是用第一种办法就有范围,好比说要分页显现记录时,就必需要用到第二种办法。
我们用sqlserver中的存储历程目标是为了加速速率,但一个存储过程当中sql语句有良多时,它的上风出格分明。假如sql语句不是良多,
而我们用第二种办法就必需多创立一个command工具,大概还会减慢速率!以是我们要平衡各方面的好处来利用存储历程。
不外我以为不外速率如何,利用存储历程可使程序加倍模块化,便于修正,和调试(能够间接在sqlserver下调试,而不必在ie下看asp
的了局)。
</p>asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关. |
|