asp存储过程使用大全

1,调用没有参数的存储过程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{call nono}"

'set rs=cmc.exe 或者cmd.execute

set rs=cmd.Execute()

%>
2,一个输入的参数的存储过程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{call oneinput(?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger ,adParamInput )
cmd("@aaa")=100

cmd.Execute()

%>
3,一个输入参数和一个输出的参数
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText = "{call oneinout(?,?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")
%>
4,一个输入参数,一个输出参数,和一个返回值
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{?=call onereturn(?,?)}"

cmd.Parameters.Append cmd.CreateParameter("@return_value",adInteger,adParamReturnValue )
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput )
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")
rrr=cmd("@return_value")
%>





如何在ASP中调用SQL存储过程
www.lucky365.net 2002-2-7 吉祥365

<%set connection1 = Server.CreateObject("ADODB.Connection")
connection1.open ... '联接
set command1=Server.CreateObject("ADODB.command")
set command1.activeconnection=connection1
command1.commandtype=4
command1.commandtext="sp_1" 'SP 名
command1.parameters(1)=... '参数值
command1.parameters(2)=...
set recordset1=command1.execute()
%>



ASP调用存储过程的技巧

1、最简单的如下
Dim objConn
Set objConn = Server.CreateObject("ADOBD.Connection")
objConn.Open Application("Connection_String")
'Call the stored procedure to increment a counter on the page
objConn.Execute "exec sp_AddHit"
没有参数,没有返回,没有错误处理,就是这个了

2、带参数的一种调用
objConn.Execute "exec sp_AddHit 'http://www.aspalliance.com', 1"
请注意分割参数,该方法也不返回记录

3、返回记录的
Dim objConn
Dim objRs
Set objConn = Server.CreateObject("ADOBD.Connection")
Set objRs = Server.CreateObject("ADOBD.Recordset")
objConn.Open Application("Connection_String")
'Call the stored procedure to increment a counter on the page
objRs.Open objConn, "exec sp_ListArticles '1/15/2001'"
'Loop through recordset and display each article
4、……
Dim objConn
Dim objCmd

'Instantiate objects
Set objConn = Server.CreateObject("ADODB.Connection")
set objCmd = Server.CreateObject("ADODB.Command")
conn.Open Application("ConnectionString")

With objCmd
.ActiveConnection = conn 'You can also just specify a connection string here
.CommandText = "sp_InsertArticle"
.CommandType = adCmdStoredProc 'Requires the adovbs.inc file or typelib meta tag

'Add Input Parameters
.Parameters.Append .CreateParameter("@columnist_id", adDouble, adParamInput, , columnist_id)
.Parameters.Append .CreateParameter("@url", adVarChar, adParamInput, 255, url)
.Parameters.Append .CreateParameter("@title", adVarChar, adParamInput, 99, url)
.Parameters.Append .CreateParameter("@description", adLongVarChar, _
adParamInput, 2147483647, description)

'Add Output Parameters
.Parameters.Append .CreateParameter("@link_id", adInteger, adParamOutput, , 0)

'Execute the function
'If not returning a recordset, use the adExecuteNoRecords parameter option
.Execute, , adExecuteNoRecords
link_id = .Parameters("@link_id")
End With

5、存储过程的代码
Create PROCEDURE dbo.sp_InsertArticle
(
@columnist_id int,
@url varchar(255),
@title varchar(99),
@description text
@link_id int OUTPUT
)
AS
BEGIN
INSERT INTO dbo.t_link (columnist_id,url,title,description)
VALUES (@columnist_id,@url,@title,@description)

SELECT @link_id = @@IDENTITY
END


ASP调用带参数存储过程的几种方式


ASP调用带参数存储过程的几种方式

最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法。

1 这也是最简单的方法,两个输入参数,无返回值:
set connection = server.createobject("adodb.connection")
connection.open someDSN
Connection.Execute "procname varvalue1, varvalue2"

''将所有对象清为nothing,释放资源
connection.close
set connection = nothing

2 如果要返回 Recordset 集:
set connection = server.createobject("adodb.connection")
connection.open someDSN
set rs = server.createobject("adodb.recordset")
rs.Open "Exec procname varvalue1, varvalue2",connection

''将所有对象清为nothing,释放资源
rs.close
connection.close
set rs = nothing
set connection = nothing

3 以上两种方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样;另一种是可以返回多个值,存
储这些值的变量名称需要在调用参数中先行指定。
这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?)
存储过程如下:

use pubs
GO

-- 建立存储过程
create procedure sp_PubsTest

-- 定义三个参数变量,注意第三个,特别标记是用于输出
@au_lname varchar (20),
@intID int,
@intIDOut int OUTPUT

AS

SELECT @intIDOut = @intID + 1

SELECT *
FROM authors
WHERE au_lname LIKE @au_lname + ''%''

--直接返回一个值
RETURN @intID + 2

调用该存储过程的asp程序如下:

<%@ Language=VBScript %>
<%
Dim CmdSP
Dim adoRS
Dim adCmdSPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar

‘这些值在 VB 中是预定义常量,可以直接调用,但在 VBScript 中没有预定义
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200

iVal = 5
oVal = 3

''建一个command对象
set CmdSP = Server.CreateObject("ADODB.Command")

''建立连结
CmdSP.ActiveConnection = "Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs"

''定义command 对象调用名称
CmdSP.CommandText = "sp_PubsTest"

''设置command调用类型是存储过程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc

''往command 对象中加参数
''定义存储过程有直接返回值,并且是个整数,省缺值是4
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)
''定义一个字符型输入参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")
''定义一个整型输入参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)
''定义一个整型输出参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)

''运行存储过程,并得到返回记录集
Set adoRS = CmdSP.Execute

''把每个记录打印出来,其中的字段是虚拟的,可以不用管
While Not adoRS.EOF

for each adoField in adoRS.Fields
Response.Write adoField.Name & "=" & adoField.Value & "<br>" & vbCRLF
Next
Response.Write "<br>"
adoRS.MoveNext
Wend

''打印两个输出值:
Response.Write "<p>@intIDOut = “ & CmdSP.Parameters("@intIDOut").Value & "</p>"
Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>"

''大扫除
Set adoRS = nothing
Set CmdSP.ActiveConnection = nothing
Set CmdSP = nothing
%>

此外还有其他方式,稍微偏门一些,以后慢慢再说
本文参考了多篇文章,这里不一一列出。













在Asp中使用存储过程

  为了提高Asp程序的效率,有时需要在Asp中使用使用Sql Server的存储技术,下面简单作一个介绍。

存储过程的建立

  这里只简单介绍如何在Sql Server的企业管理器中如何建立存储过程:

(1)打开企业管理器Enterprise manager

(2)选择服务器组(SQL Server Group)、服务器、数据库(Database)以及相就的数据库,鼠标右击对应数据库下的Stored Procdures项,在弹出的菜单中选择New Stored Procedure,在Stored Procedures Properties中输入建立存储过程的语句。下面是一个例子:

  CREATE PROCEDURE proctest @mycola Char(10),@mycolb Char(10),@mycolc text  AS

  Insert into chatdata (mycola,mycolb,mycolc) values(@mycola,@mycolb,@mycolc)

在Sql Server的文档中它的语法为:

  CREATE PROC[EDURE] procedure_name [;number]   [

  {@parameter data_type} [VARYING] [= default] [OUTPUT]   ]

  [,...n]  [WITH    {   RECOMPILE   | ENCRYPTION

  | RECOMPILE, ENCRYPTION   }  ]  [FOR REPLICATION]  AS

   sql_statement [...n]

  如果你对Sql语法不熟悉,可以使用Check Syntax来检查语法。在上例中,表示建立存储过程名为mycola,带3个参数的存储过过程,其中第一个参数mycola数据类型为char,宽度10;第2个参数数据类型为char,宽度为10,第3个参数数据类型为text,在这里使用的是Sql Server的数据类型。

  存储过程建立后,下面就是如何在Asp程序中调用该存储过程:在Asp中调用存储过程 为了提高Asp程序的效率,有时需要在Asp中使用使用Sql Server的存储技术,下面简单作一个,在上面的增加参数的语句p.Append cm.CreateParameter("@mycolc",201,1,250)中,格式为:

p.Append cm.CreateParameter("参数名称",类型,方向,大小)

参许参数值的类型的意义如下:

名称值 整数值 功能

  adDBTimeStamp 135 日期时间数据类型

  adDecimal 14 十进制整数值

  adDouble 5 双精度小数值

  adError 10 系统错误信息

AdGUID 72 全域性唯一识别字(Globally unique identifier)

adDispath 9 COM/OLE自动对象(Automation Object)

adInteger 3 4字节有符号整数

adIUnknown 13 COM/OLE对象

adLongVarBinary 205 大型2字节值

adLongVarChar 201 大型字符串值

adLongVarWChar 203 大型未编码字符串

adNumeric 131 十进制整数值

adSingle 4 单精度浮点小数

adSmallInt 2 2字节有符号整数

adTinyInt 16 1字节有符号整数

adUnsignedBigInt 21 8字节无符号整数

adUnsignedInt 19 4字节无符号整数

adUnsignedSmallInt 18 2字节无符号整数

adUnsignedTinyInt 17 1字节无符号整数

adUserDefined 132 用户自定义数据类型

adVariant 12 OLE对象

adVarBinary 204 双字节字符变量值

adVarChar 200 字符变量值

advarchar 202 未编码字符串变量值

adWchar 130 未编码字符串

方向值的意义如下:

名称值 整数值 功能

adParamInput 1 允许数据输入至该参数当中

adParamOutput 2 允许数据输出至该参数当中

adParamInputOutput 3 允许数据输入、输出至该参数当中

adparamReturnValue 4 允许从一子程序中返回数据至该参数当中

更多详细资源请参考Sql Server的文档和IIS的文档资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5 文档元素 header footer h1h2h4

文档元素: 用于在页面的大布局, 区分各个主体和概念. 让整体清晰, 元素有语义, 进一步代替div 具体划分图示: (参考) <hgroup> <section> <nav> <article> 里面又是一个可以添加<header\section\footer>的一整套的标签, 麻雀虽小五脏俱全 &l…

基于Java SSM框架实现医院挂号上班打卡系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现医院挂号上班打卡系统演示 摘要 在网络发展的时代&#xff0c;国家对人们的健康越来越重视&#xff0c;医院的医疗设备更加先进&#xff0c;医生的医术、服务水平也不断在提高&#xff0c;给用户带来了很大的选择余地&#xff0c;而且人们越来越追求更个…

各类防火墙应用对比分析

各类防火墙应用对比分析 用户的网络拓扑结构的简单与复杂、用户应用程序的难易程度不是决定是否应该使用防火墙的标准&#xff0c;决定用户是否使用防火墙的一个根本条件是用户对网络安全的需求&#xff01;一、两种设备产生和存在的背景…

CAN 设备通讯实验代码+HAL 与原生库分别实现

实验准备&#xff1a; 两块带有CAN 收发器的STM32 MCU板子 1.HAL 库实现部分 pin 设置&#xff0c;依据datasheet 和原理图 时钟设置 工程设置 1&#xff09; main.c /* USER CODE BEGIN Header */ /*********************************************************…

Spring AOP 面向切面编程

AOP 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff0c;也是Spring框架中的…

分析 C# 2.0 新特性 -- 空类型(Nullable Types)

分析 C# 2.0 新特性 -- 空类型&#xff08;Nullable Types) 在讨论C# 2.0 空类型前&#xff0c;先回顾一下.NET 1.0和.NET 1.1对于类型有下面这样的定义&#xff1a; ".NET 中类型分为值类型和引用类型&#xff0c;值类型不能为空&#xff0c;引用类型可为空"; 在这…

qt websocket 通讯实现消息发送接收

websocket 是基于 TCP socket 之上的应用层&#xff0c; 解决 HTML 轮询连接的问题&#xff0c;实现客户端与服务端长连接&#xff0c; 实现消息互相发送&#xff0c;全双工。 服务端&#xff0c; 使用 QT 教程demo chatserver.h #ifndef CHATSERVER_H #define CHATSERVER_H#i…

关于人工智能引擎的最初分析文档

关于人工智能引擎的最初分析文档 赵立 1、开发人工智能引擎的目的是什么&#xff1f;其功能定位什么&#xff1f;有什么特色&#xff1f; 希望开发一整套人工智能软件的开发平台&#xff0c;用于解决目前软件技术难以处理的智能问题&#xff0c;从而能逐渐形成这方面的标准。我…

关于颜色值透明度的设置

<!--百分比-开头字母--> <!--100% —FF--> <!--95% — F2--> <!--90% — E6--> <!--85% — D9--> <!--80% — CC--> <!--75% — BF--> <!--70% — B3--> <!--65% — A6--> <!--…

遥感图像增强方法应用

黄永璘 &#xff08;广西气象减灾研究所 广西南宁 530022&#xff09; 1、引 言  人类从眼睛获取信息占人体器官获取信息的90%以上&#xff0c;虽然人眼能看到很多东西&#xff0c;但其实我们看到的只是波长为0.38&#xff5e;0.8μm可…

3D Mapping with an RGB-D Camera(RGBD SLAM V2 )论文笔记

这篇文章即是Felix Endres等人12年完成的RGB-D SLAM V2&#xff0c;是最早的为kinect风格传感器设计的SLAM系统之一 没看到有相关的论文解析 在Github上可找到开源代码&#xff0c;工程配置与运行参考http://www.cnblogs.com/voyagee/p/6898278.html 系统流程 系统分为前后端。…

mysql内连接

假设&#xff41;表和&#xff42;表的数据是这样的。 a表 id name   1  a 2 b 3 c b表 id stock  1 15 2 50   select * from …

这两天的问题

最天调用COM接口实现了脚本执行的功能,可是不好的是要运行一次,提供的.EXE,我用CreateProcess打开后但不想让它显示出来,但只有控制台下的才行.难!还有OLE在对话框中的运用,一直出现内存溢出,再想办法! 转载于:https://www.cnblogs.com/dyx1024/archive/2007/11/29/2556857.htm…

制作新网络框架快速自动生成消息结构体的编辑器

这两天制作了一个自动生成代码脚本的窗体编辑器 目前还没有做过第一行可以选择生成的脚本类型&#xff0c;分请求消息和回应消息两种结构体脚本 第二行可以手动输入命名空间&#xff0c;第三行手动输入文件的名称&#xff0c;类名与文件名称相同 后面两个ID是消息的ID 下面的Po…

left join和left outer join的区别

left join是left outer join的缩写&#xff0c;所以作用是一样的。 另外在SQL里没有区分大小写&#xff0c;也就是left join和LEFT JOIN都是可以的。 left join: 包含左表的所有行&#xff0c;对应的右表行可能为空。 right join: 包含右表的所有行&#xff0c;对应的左表…

随心所欲的Web页面打印技术

一.概述 对基于B/S架构的应用程序而言&#xff0c;客户端的页面打印一直是比较头疼的问题&#xff0c;简单的做法是&#xff1a;1.使用IE的打印功能&#xff1b;2.使用水晶报表。但以上两种办法&#xff0c;都有很大的局限性&#xff0c;很难实现特殊要求的排版和精确的定位&…

OAuth2.0学习(2-1)Spring Security OAuth2.0 开发指南

开发指南&#xff1a;http://www.cnblogs.com/xingxueliao/p/5911292.htmlSpring OAuth2.0 提供者实现原理&#xff1a;Spring OAuth2.0提供者实际上分为&#xff1a;授权服务 Authorization Service.资源服务 Resource Service.虽然这两个提供者有时候可能存在同一个应用程序中…