仓酷云

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

[学习教程] ASP网站制作之几例在ASP存储历程的利用办法

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

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

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

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还有更多的扩展,可以用存储过程,数据库大小无极限限制。
admin 该用户已被删除
沙发
发表于 2015-1-20 10:14:07 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-27 08:25:53 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-30 22:32:27 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
活着的死人 该用户已被删除
5#
发表于 2015-2-2 10:56:53 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
海妖 该用户已被删除
6#
发表于 2015-2-7 18:11:20 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
变相怪杰 该用户已被删除
7#
发表于 2015-2-22 20:16:15 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
谁可相欹 该用户已被删除
8#
发表于 2015-3-7 02:10:39 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
透明 该用户已被删除
9#
发表于 2015-3-14 04:02:32 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-21 00:17:49 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 18:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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