ASP网页设计用存储历程完成ASP对数据库会见
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧存储历程|会见|数据|数据库1、ADO概述ActiveX数据工具(ADO)是一种既易于利用又可扩大的手艺,用来将数据库会见增加到您的Web页可使用ADO编写简便和可晋级的剧本以毗连到与OLEDB兼容的数据源,如数据库、电子表格、按次数据文件或电子邮件目次。OLEDB是一个体系级的编程接口,它供应一套尺度的COM接口,用来展现数据库办理体系的功效。利用ADO的工具模子,您能够轻松地(利用VBScript或JScript等剧本言语)会见这些接口并将数据库功效增加到您的Web使用程序中。别的,您还可使用ADO会见与开放式数据库互连(ODBC)兼容的数据库。
假如您是一名对数据库互连常识有必定懂得的剧本编写者,您将会发明ADO的命令语法很复杂,并且很简单利用。假如您是一名履历丰厚的开辟职员,您将会十分浏览ADO供应的这类可晋级的对各类数据源的高功能会见。
2、会见数据库的一样平常办法
一样平常的网页会见中会见数据库是依照以下步骤举行的,起首创建一个ADODB.Connection接口的工具,接着在这一个工具上绑定响应的数据源(能够用着名数据源和知名数据源),依据必要创建大概不创建纪录集,然后在该数据源上链接用实行或翻开的办法来对响应的表举行操纵。
Asp会见数据库的一样平常办法:
<
SetoConn=Server.CreateObject(“ADODB.Connection”)
SetoRS=Server.CreateObject(“ADODB.RecordSet”)
setstrConn="Provider=SQLOLEDB;UserID=sa;InitialCatalog=Pubs;DataSource="&request.ServerVariables("SERVER_NAME")
oConn.openstrConn
setORS=oConn.execute(“select*fromtest”)
>
以上先容了知名链接的OLEDB的利用办法,假如是着名链接,设为数据源test,用户名和口令均为空,则只必要改写一下上述语句oConn.open“test”,””,””
下面扼要先容了一下关于网页中触及到数据库会见的一样平常办法,这些已是很成熟的,也是很有效的,假如在实践中关于某些数据的存取过于庞大,必要近10条SQL语句才干写完,那末这类办法就有点完善,别的有些时分必要利用不异的处置历程,而在分歧的网页中利用,而这用存储历程则是最有益的,另有一个最年夜特性是存储历程关于手艺的保密性绝对高些,它存储于远端服务器的数据库内。
3、存储历程在ASP中的利用
在ADO中供应了对存储历程的会见,它必要用到command工具,在这个工具上用户能够间接实行SQL服务器的存储历程,而命令中所必要的参数能够借助于其属性Pamaters来举行处置。
注重一个Command工具要想无效,必需和一个Connection工具相干联,办法是Command工具的ActiveConnection属性就被设置到这个Connection工具。假如一个Connection工具不克不及被标识,在您将它与一个毗连联系关系之前,Command工具是有效的。
<DimoConn
DimstrConn
DimoCmd
DimoRs,ors1
dimaa
dimsql
SetoConn=Server.CreateObject("ADODB.Connection")
setoCmd=Server.CreateObject("ADODB.Command")
setors1=Server.CreateObject("ADODB.RecordSet")
翻开链接,利用用户标识SA,口令为空,毗连为当地服务器上的数据库
strConn="Provider=SQLOLEDB;UserID=sa;InitialCatalog=pubs;DataSource="&Request.ServerVariables("SERVER_NAME")
假如毗连一个远真个数据库,该数据库地点为:10.82.88.105,用户为tmp,口令为123,
‘则可用上面的办法
‘strConn="Provider=SQLOLEDB;UserID=tmp;pwd=123;InitialCatalog=tjbb;DataSource="&"10.82.88.110"
oConn.OpenstrConn
‘将创建的链接增加到命令的举动链接属性中
SetoCmd.ActiveConnection=oConn
设置挪用存储历程byroyalty和参数,参数由?引进
oCmd.CommandText="{callbyroyalty(?)}"
oCmd.Parameters.AppendoCmd.CreateParameter("@Percentage",adInteger,adParamInput)
供应输出的参数
oCmd("@Percentage")=75
‘在asp中上述输出参数的利用也可不必参数属性来完成间接用VB中的&来构成命令文本中对应的数据便可
‘参数的利用在输入时是出格有效的
SetoRs=oCmd.Execute
ors1.activeconnection=oconn
‘该命令工具中也可使用一样平常的SQL语句利用Source和open属性,个中source指出数据源
ors1.source="select*fromwhere年份=2000and月份=1"
ors1.cursortype=adopenstatic
ors1.open
>
4、在SQL中的存储历程简介
使用SQL的言语能够编写关于数据库会见的存储历程,其语法以下:
CREATEPROCprocedure_name[;number]
[
{@parameterdata_type}[=default]
]
[,...n]
[WITH
{
RECOMPILE
|ENCRYPTION
|RECOMPILE,ENCRYPTION
}
]
AS
sql_statement[...n]
[]内的内容是可选项,而()内的内容是必选项,
例:若用户想创建一个删除表tmp中的纪录的存储历程Select_delete可写为:
CreateProcselect_delAs
Deletetmp
例:用户想查询tmp表中某年的数据的存储历程
createprocselect_query@yearintas
select*fromtmpwhereyear=@year
在这里@year是存储历程的参数
例:该存储历程是从某结点n入手下手找到最下层的父亲结点,这类常常用到的历程能够由存储历程来承当,在网页中反复利用到达共享。
空:暗示该结点为顶层结点
fjdid(父结点编号)
结点n非空:暗示该结点的父亲结点号
dwmc(单元称号)
CREATEprocsearch_dwmc@dwidoldint,@dwmcresultvarchar(100)output
as
declare@stopint
declare@resultvarchar(80)
declare@dwmcvarchar(80)
declare@dwidint
setnocounton
set@stop=1
set@dwmc=""
select@dwmc=dwmc,@dwid=convert(int,fjdid)fromjtdwwhereid=@dwidold
set@result=rtrim(@dwmc)
if@dwid=0
set@stop=0
while(@stop=1)and(@dwid0)
begin
set@dwidold=@dwid
select@dwmc=dwmc,@dwid=convert(int,fjdid)fromjtdwwhereid=@dwidold
if@@rowcount=0
set@dwmc=""
else
set@result=@dwmc+@result
if(@dwid=0)or(@@rowcount=0)
set@stop=0
else
continue
end
set@dwmcresult=rtrim(@result)
充实公道天时用存储历程,能够进步服务器吞吐才能,笔者使用存储历程来从近20个表中猎取数据组分解一个通用的表,发生近2万笔记录,而所需工夫约7秒钟,假如这类操纵借助于较公道的静态网页能够将服务器开辟进步到一个高度,充实使用存储历程,能够加重网页计划带来的沉重处置,而使所编写的代码失掉共享和公道的使用,并将代码躲于服务器的数据库外部,使得一些手艺失掉的保密,这也是存储历程的一年夜特征,但愿读者能从中失掉启益。
转自:http://goaler.xicp.net/ShowLog.asp?ID=504
</p>实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]