|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。存储历程1、利用Command工具和Parameter工具传送参数
本讲将次要利用MicrosoftSQLServer7.0数据库,先创建一个毗连文件AdoSQL7.asp备用,今后用到时不再出格申明。
<%AdoSQL7.asp
OptionExplicit
Response.Expires=0
第一部分:创建毗连
DimCnn,StrCnn
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=sqloledb;UserID=sa;Password=;InitialCatalog=pubs;DataSource=ICBCZJP"
Cnn.OpenStrCnn
%>
注重:本人利用时要将DataSource设为你的数据库服务器地点的呆板名。
别的,之前利用Access数据库时,用MicrosoftAccess97能够很便利的检察字段及数据,而利用SQLServer数据库,特别是其实不在数据库服务器,而是在另外一台呆板上调试ASP剧本时,要检察字段及数据便需别的安装工具,这里向你供应一个工具:Msqry32.exe(MicrosoftQuery),这个文件随Office97安装,一样平常位于目次“MicrosoftOfficeOffice”下。
例wuf70.asp:
<%@LANGUAGE="VBSCRIPT"%>
<!--#includefile="AdoSQL7.asp"-->
<!--#includefile="adovbs.inc"-->
<%wuf70.asp
DimcmdTest,prmTest,rsTest
创立Command工具
SetcmdTest=Server.CreateObject("ADODB.Command")
‘Recordset、Command工具都能够经由过程ActiveConnection属性来毗连Connection工具
cmdTest.ActiveConnection=Cnn
SQL命令-含两个参数,用?暗示
cmdTest.CommandText="UpdatejobsSetjob_desc=?Wherejob_id=?"
设命令范例为SQL语句
cmdTest.CommandType=adCmdText
Prepared属性决意是不是将SQL命令先行编译,将其设为True,能够加速运转
cmdTest.Prepared=True
创立Parameter工具
SetprmTest=cmdTest.CreateParameter("job_desc",adVarChar,adParamInput,50,"收集")
将数据追加到Parameters数据汇合中
cmdTest.Parameters.AppendprmTest
SetprmTest=cmdTest.CreateParameter("job_id",adSmallInt,adParamInput,,"12")
cmdTest.Parameters.AppendprmTest
实行修正?不必要前往了局,复杂的利用cmdTest.Execute就能够了
cmdTest.Execute
从头设置参数运转?即可修正另外一条数据
cmdTest.Parameters("job_id")="1"
cmdTest.Parameters("job_desc")="测试"
cmdTest.Execute
从头设置参数运转
cmdTest("job_id")="14"
cmdTest("job_desc")="金融"
cmdTest.Execute
SetrsTest=Cnn.Execute("Selectjob_id,job_descFromjobs")
WhileNotrsTest.EOF
Response.WritersTest(0)&rsTest(1)&"<br>"
rsTest.MoveNext
Wend
Cnn.close:SetprmTest=Nothing
SetcmdTest=Nothing:SetCnn=Nothing
%>
剖析:
1.Command工具的CreateParameter办法用来为SQL命令或存储历程创建参数工具,共有五个参数(五个参数都是可选项):
第一个参数:参数工具的称号;
第二个参数:参数工具的数据范例,品种太多,仍是参考ADO匡助吧,这里adVarChar(字符串值)、adSmallInt(2字节带标记整型);
第三个参数:参数范例。能够是:adParamInput(唆使输出参数)、adParamOutput(唆使为输入参数)、adParamReturnValue(唆使为前往值)、adParamUnknown(唆使参数范例没法断定)、adParamInputOutput(唆使为输出/输入参数);
第四个参数:参数的数据长度,最好指定为与数据库中对应字段长度相称,以避免利用时堕落,特别数据范例为VarChar时,假如是整型或日期型则不用供应该值;
第五个参数:参数的设置初值。
2.cmdTest.Parameters.Append办法增添一个Parameter工具到Parameters数据汇合中,从本例中也可看到怎样利用多个参数。
3.从本例能够看到,只必要从头设定输出参数,即可实行对其他数据的修正,十分便利,这一思绪在编程时也是最经常使用的办法之一。
4.重设参数,既可使用cmdTest.Parameters,也能够省略为cmdTest("job_id")。
2、在ASP中利用存储历程
甚么是存储历程(存储历程位于数据库服务器中,是一个SQL语句的汇合,可包括一个或多个SQL语句)、如何创立存储历程不属于本讲座的内容,本讲座次要是举例申明在ASP中怎样挪用存储历程。
利用存储历程的优点是年夜年夜的,存储历程比在ASP剧本中运转SQL命令效力更高;能够进步全体功能并加重收集负载(削减了在收集服务器和数据服务器之间的交互);能够优化ASP代码和加强代码天真性等等。
(一)在存储过程当中利用输出参数
本例中利用的存储历程为SQLServer7.0自带的“byroyalty”,内里的一条SQL语句十分复杂,不过是多了一个CREATEPROCEDUREbyroyalty,而且有一个输出参数为@percentage:
CREATEPROCEDUREbyroyalty@percentageint
AS
selectau_idfromtitleauthor
wheretitleauthor.royaltyper=@percentage
servebywww.cidu.net
例wuf71.asp
<%@LANGUAGE=VBScript%>
<!--#includefile="AdoSQL7.asp"-->
<!--#includefile="adovbs.inc"-->
<%wuf71.asp
DimcmdTest,prmTest,rsTest
SetcmdTest=Server.CreateObject("ADODB.Command")
cmdTest.CommandText="byroyalty"存储历程名
设命令范例为存储历程
cmdTest.CommandType=adCmdStoredProc
创立Parameter工具</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|