ASP存储过程

ASP+SQL-存储过程 立即下载
学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。

所有的大型数据库都支持存储过程,比如Oracle、MS SQL等,(但MS Access不支持,不过,在Access里可以使用参数化的查询)。

存储过程是利用SQL Server所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序和SQL Server数据库间的主要程序式设计界面。它好比Oracle数据库系统中的Pro-SQL和Informix的数据库系统能够中的Informix-4GL语言一样。这类语言主要提供以下功能,让用户可以设计出符合引用需求的程序:
1)、变量说明
2)、ANSI兼容的SQL命令(如Select,Update….)
3)、一般流程控制命令(if…else…、while….)
4)、内部函数

存储过程的书写格


CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
 {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行


其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数(SQL Server 7.0以上版本),参数的使用方法如下:


@参数名 数据类型 [VARYING] [=内定值] [OUTPUT]


每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。

[=内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。


 CREATE PROCEDURE order_tot_amt @o_id int,@p_tot int output AS
 SELECT @p_tot = sum(Unitprice*Quantity)
 FROM orderdetails
 WHERE ordered=@o_id

 

该例子是建立一个简单的存储过程order_tot_amt,这个存储过程根据用户输入的定单ID号码(@o_id),由定单明细表(orderdetails)中计算该定单销售总额[单价(Unitprice)*数量(Quantity)],这一金额通过@p_tot这一参数输出给调用这一存储过程的程序

使用存储过程有许多好处,它可以封装复杂的数据逻辑,充分发挥大型数据库本身的优势。

我们知道,ASP并不适合做复杂的数据运算,而通过OLD DB访问数据库,由于数据需要在ASP和数据库之间传递,相当消耗系统资源。

事实上,如果数据库仅仅起着数据存储的作用,那么它的功能是远远没有得到利用的。

关于如何创建存储过程,请参考MS SQL的相关文档。

本文介绍存储过程如何在ASP中运用。

简单的一个SQL语句:


select ID,Name,Picture,Time,Duty from employ 


我们可以创建一个存储过程:


CREATE PROCEDURE sp_employ
AS
select ID,Name,Picture,Time,Duty from employ 
Go


而SQL语句:


select ID,Name,Picture,Time,Duty from employ where ID=10230


对应的存储过程是:(用Alter替换我们已有的存储过程)


ALTER PROCEDURE sp_employ
@inID  int
AS
select ID,Name,Picture,Time,Duty from employ  where ID=@inID
Go

 

下面对比一下SQL和存储过程在ASP中的情况。首先看看直接执行SQL的情况:


<%
dim Conn, strSQL, rs
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open  "DSN=webData;uid=user;pwd=password" 
strSQL = "select ID,Name,Picture,Time,Duty from employ "
Set rs = Conn.Execute(strSQL) 
%> 



再看看如何执行Stored Procedure:

<%
dim Conn, strSQL, rs
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open  "DSN=webData;uid=user;pwd=password" ’make connection
strSQL = "sp_employ"
Set rs = Conn.Execute(strSQL) 
%> 

而执行带参数的Stored Procedure也是相当类似的:


<%
dim Conn, strSQL, rs, myInt
myInt = 1 
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open  "DSN=webData;uid=user;pwd=password"
strSQL = "sp_myStoredProcedure " & myInt
Set rs = Conn.Execute(strSQL) 
%> 



在SQL Server中执行存储过程

在SQL Server的查询分析器中,输入以下代码:
declare @tot_amt int
execute order_tot_amt 1,@tot_amt output
select @tot_amt

以上代码是执行order_tot_amt这一存储过程,以计算出定单编号为1的定单销售金额,我们定义@tot_amt为输出参数,用来承接我们所要的结果


在ASP中调用存储过程


<!--必须加载adovbs.inc文件,否则将出错-->
<!--#include file="adovbs.inc"-->
<%
dim objCnn
dim objCmd
dim Rs
const o_id=112

'-----建立Connection对象----------
set objCnn=Server.CreateObject("Adodb.connection")
objCnn.Open "driver={sql server};server=localhost;uid=sa;pwd=cncanet;database=check;"
'-----建立Command对象-----------
set objCmd=Server.CreateObject("Adodb.Command")
objCmd.ActiveConnection=objCnn
objCmd.CommandText="order_tot_amt" '指定存储过程名称
objCmd.CommandType=adCmdStoredProc '其为Stored Procedure
'-----准备stored procedure 的参数-------
objCmd.Parameters.Append _
 objCmd.CreateParameter("o_id",adInteger,adParamInput,,o_id)
objCmd.Parameters.Append _
 objCmd.CreateParameter("p_tot",adBigInt,adParamOutput,,0)
'-----执行存储过程----------------------
objCmd.Execute

'-----输出参数以及处理结果--------------
for each parm in objCmd.Parameters
 Response.Write parm.name &"="& trim(parm) &"<br>"
next
%>
ASP存储过程使用大全 ASP存储过程使用大全 ASP存储过程使用大全 立即下载

相关推荐

asp调用存储过程

1.调用存储过程的一般方法 先假设在sql server中有一存储过程dt_users: CREATE PROCEDURE [dbo].[dt_users] AS select * from users return GO 第一种方法是不利用command对象,直接用recordset对象 set rs=server.createobject(“adodb.recordset”) sql=”exec dt_users” rs.open sql,conn,1,1 这样就可 第二种方法是利用command对象 set comm=server.createobject(“adodb.command”

ASP与存储过程

ASP与存储过程    ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事。对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了。     现在,我基本上通过调用存储过程访问SQL Server,以下的文

Wind_Lam的专栏 1043

基于OpenCV C++实现工业级形状模板匹配:仿Halcon SBM算法全解析

在计算机视觉和工业自动化领域,模板匹配是一项基础且关键的技术,用于在图像中定位已知目标。其核心原理是通过计算图像区域与预设模板之间的相似度来识别目标位置。传统的基于灰度值的匹配方法对光照变化敏感,鲁棒性不足。而基于边缘梯度方向的形状匹配技术,通过计算轮廓梯度方向的一致性进行相似度度量,从根本上提升了对光照变化的鲁棒性,并支持目标的旋转与缩放,技术价值显著。这项技术广泛应用于工业视觉检测、机器人引导、PCB定位等对精度和稳定性要求极高的场景。本文聚焦于使用开源OpenCV库,从底层仿照Halcon的Shape

weixin_33691817的博客 502

asp存储过程使用大全

存储过程使用大全(www.Jojoo.net)  2002-2-19 (请双击自动滚屏观看,单击停止,再击..)1,调用没有参数的存储过程set conn=server.CreateObject("adodb.connection")set cmd=server.CreateObject("adodb.command")strconn="dsn=pubs;uid=sa;pwd"conn.Open

bigcarp的专栏 1839

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2080

深度学习笔记(1)机器学习与深度学习基础

一些深度学习的简单概念和Transformer的学习。

hanliu2003的博客 1492

ASP中使用存储过程

学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。所有的大型数据库都支持存储过程,比如Oracle、MS SQL等,(但MS Access不支持,不过,在Access里可以使用参数化的查询)。存储过程是利用SQL Server所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序

Aspstudy与你一起学习ASP ...... 1367

Python+gensim【中文LDA】简洁模型

文章目录完整代码过程详解words_lsdictionarydictionary.doc2bow函数corpuslda 完整代码 from gensim import corpora, models import jieba.posseg as jp # 待分析文本集 text1 = '美国教练坦言,没输给中国女排,是输给了郎平' text2 = '中国女排世界排名第一?真实水平如何,听听巴西和美...

ArYe 2万+

ASP使用存储过程的总结

1.      什么是存储过程?存储过程是SQL server所提供的Tranact-SQL语言所编写的程序。2.      如何建立存储过程? Create Procedure EmployeeID_Orders@EmployeeID as intasselect * from orderswhere employeeID=@EmployeeID--=============

yanick技术博客 1239

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5974

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

在Asp中使用存储过程

为了提高Asp程序的效率,有时需要在Asp中使用使用Sql Server的存储技术,下面简单作一个介绍。存储过程的建立 这里只简单介绍如何在Sql Server的企业管理器中如何建立存储过程: (1)打开企业管理器Enterprise manager (2)选择服务器组(SQL Server Group)、服务器、数据库(Database)以及相就的数据库,鼠标 右击对应数据库下的Stored P

谭洪星 864

SAP-RPT-1 深度解读:面向企业表格数据的 rapid one

摘要: SAP在TechEd 2025大会上推出面向企业结构化数据的SAP-RPT-1(Relational Pretrained Transformer),旨在通过in-context learning直接预测表格数据中的缺失值,无需传统机器学习流程。与LLM不同,RPT专为业务表格设计,支持实时预测(如交货延迟、回款风险等)。提供Small(高吞吐)、Large(高精度)和开源版本,用户可通过无代码Playground(上传CSV并用[PREDICT]标记目标列)或Python API快速验证。典型场景

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 237

在ASP中调用存储过程

在ASP中调用存储过程: ----   存储过程(Stored-Procedure)是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用。它的参数可以被传递和返回。 ----   ASP包含的ADO(ActiveX Data Object)即ActiveX数据对象技术与ASP相结合提供了强大的站点数据库访问功能。ADO具有操作

WEB技术 755

55、磁吸附爬壁机器人运动仿真与位置控制

本文针对大型船舶喷涂作业中人工操作存在的高风险与低效率问题,提出一种基于麦克纳姆轮的磁吸附爬壁机器人运动控制方案。通过建立Adams虚拟样机与MATLAB/Simulink控制系统的联合仿真模型,设计了速度和位置双闭环控制系统,采用模糊PI控制器优化速度响应,并引入位置反馈补偿重力引起的垂直偏移。研究结果表明,模糊PI控制器在响应速度、超调抑制和位置稳定性方面优于传统PI控制器,且位置反馈能有效校正横向移动中的下坠现象,尤其在跨越焊缝等复杂工况下仍可保持稳定运行,显著提升了爬壁机器人的运动精度与作业可靠性。

linux6sysadmin的博客 168

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ASP脚本如何调用Oracle存储过程

ASP脚本如何调用Oracle存储过程摘自 久久网络一、ASP动态网站开发技术  随着人们对因特网认识的加深和IT技术的发展,一成不变的静态网页已经越来越满足不了信息交互和电子商务的需求,因此以数据库为核心开发能够实现信息交互和个性化服务的网页已经成为一种潮流。为了迎合动态交互式网页的开发趋势,出现了可以与后台数据库进行互动的Web开发技术,目前比较流行的一类是建立在微软Windows平台

itzhiren的专栏 2026

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ASP调用存储过程

ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事。对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了。    现在,我基本上通过调用存储过程访问SQL Server,以下的文字虽不敢保证绝对正确,但都

骆枫专栏 897

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在ASP中使用存储过程

学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。所有的大型数据库都支持存储过程,比如Oracle、MS SQL等,(但MS Access不支持,不过,在Access里可以使用参数化的查询)。使用存储过程有许多好处,它可以封装复杂的数据逻辑,充分发挥大型数据库本身的优势。我们知道,ASP并不适合做复杂的数据运算,而通过OLD DB访问数据库,由于数据需要在ASP和数

我的积累 840

asp用存储过程实现快速分页

asp用存储过程实现快速分页  在本地测试速度提升了不少。已经加在本站的mtv歌曲列表网页一、先建立存储过程p_splitpage   CREATE procedure p_splitpage   @sql nvarchar(4000),@currentpage int=2,@pagesize int=10,@recordcount int=0 output,@pagecount int=0 ou

WEB DEVELOP 1504

asp调mysql存储过程_asp调用存储过程 (转)

存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令通过创建存储过程以及在ASP中调用存储过程,就可以避免将SQL语句同ASP代码混杂在一起。这样做的好处至少有三个:第一、大大提高效率。存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数。第二、提高安全性。假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。第三、有利于SQL语句的重用。...

weixin_34366539的博客 228

asp中使用存储过程

 asp中使用存储过程 本讲将主要使用Microsoft SQL Server7.0数据库,先建立一个连接文件AdoSQL7.asp备用,以后用到时不再特别说明。 Option Explicit Response.Expires = 0 第一部分: 建立连接 Dim Cnn, StrCnn Set

totem's 661

ASP调用存储过程:返回多个记录集的存储过程

  7. 返回多个记录集的存储过程  本文最先介绍的是返回记录集的存储过程。有时候,需要一个存储过程返回多个记录集,在ASP中,如何同时取得这些记录集呢?为了说明这一问题,在userinfo表中增加两个字段:usertel及usermail,并设定只有登录用户可以查看这两项内容。 /*SP7*/CREATE PROCEDURE

kingwkb的专栏 4609
上一篇: 成功激励格言精选
下一篇: 论Asp与XML的关系
shinetm
博客等级 码龄21年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值