仓酷云

标题: ASP编程:利用ASP存储历程的办法 [打印本页]

作者: 第二个灵魂    时间: 2015-1-16 22:06
标题: ASP编程:利用ASP存储历程的办法
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。本讲将次要利用MicrosoftSQLServer7.0数据库,先创建一个毗连文件AdoSQL7.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



实行修正&ndash;不必要前往了局,复杂的利用cmdTest.Execute就能够了

cmdTest.Execute



从头设置参数运转&ndash;即可修正另外一条数据

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
<p>无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;
作者: 乐观    时间: 2015-1-18 20:20
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者: 冷月葬花魂    时间: 2015-1-25 13:25
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 因胸联盟    时间: 2015-2-2 22:16
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者: 若相依    时间: 2015-2-8 12:49
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 小魔女    时间: 2015-2-25 15:25
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 飘飘悠悠    时间: 2015-3-8 00:28
那么,ASP.Net有哪些改进呢?
作者: 兰色精灵    时间: 2015-3-15 18:00
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 透明    时间: 2015-3-22 03:09
Session:这个存储跟客户端会话过程的数据,默认20分钟失效




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2