调用数据库存储过程
<%Set Dataconn = Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
Set cmdTemp = Server.CreateObject("ADODB.Command")
'建立命令对象
Set rst = Server.CreateObject("ADODB.Recordset")
'建立记录集对象
cmdTemp.CommandText = "dbo.pd_test" '存储过程名称
cmdTemp.CommandType = 4
'命令类别为4,表示为存储过程
Set cmdTemp.ActiveConnection = Dataconn
Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)
cmdTemp.Parameters.Append tmpParam
Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)
'创建输入参数对象
cmdTemp.Parameters.Append tmpParam
rst.Open cmdTemp, , 1, 3
'生成查询结果
%>
这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:
<%
Set Dataconn = Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"
Set rs = dataconn.Execute(ss)
%>
<%Set Dataconn = Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
Set cmdTemp = Server.CreateObject("ADODB.Command")
'建立命令对象
Set rst = Server.CreateObject("ADODB.Recordset")
'建立记录集对象
cmdTemp.CommandText = "dbo.pd_test" '存储过程名称
cmdTemp.CommandType = 4
'命令类别为4,表示为存储过程
Set cmdTemp.ActiveConnection = Dataconn
Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)
cmdTemp.Parameters.Append tmpParam
Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)
'创建输入参数对象
cmdTemp.Parameters.Append tmpParam
rst.Open cmdTemp, , 1, 3
'生成查询结果
%>
这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:
<%
Set Dataconn = Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"
Set rs = dataconn.Execute(ss)
%>
解决方案 »
- 跪求代码,多表关联存储过程
- 请教SQL语句
- **************请问关于事务隔离级别的问题************
- 索引问题
- WIN 2003 64位系统+SQL 2005 64位优化
- 有关字段值包含%的查询问题
- 查询一列数据时,在这列的前头显示¥符号
- 请给我SQL SERVER2000的序列号,我忘了,谢谢
- 当客户机连接不上MS SQL Server时,如何让它快速返回连接失败?
- 跪求优化语句!!!!!!!
- 为什么在表中删除记录时他提示我“键列信息不足或不正确。更新影响到多行”
- 我要将MS SQLSERVER2000的服务器->属性->连接->并发设置为1的话,能不能禁止并发的可能,如果两台客户端出现了并发,会出现什么情况
==============================================================================
adBigInt 20 8字节有符号整数
adBinary 128 二进制值
adBoolean 11 布尔值
adBSTR 8 Null-中断字符串(Unicode)
adChar 129 字符串值
adCurrency 6 货币值
adDate 7 日期值
adDBDate 133 日期值(yyyymmdd)
adDBTime 134 时间值(hhmmss)
adDBTimeStamp 135 日期时间值(yyyymmddhhmmss)
adDecimal 14 具有固定的精度和范围的扩展数字型。
adDouble 5 双精度浮点数值
adEmpty 0 空值
adError 10 32位错误码
adGUID 72 全球唯一的标志码
adIDispatch 9 指向一个OLE对象Idispatch的指针
adInteger 3 4字节有符号整数
adIUnknown 13 指向一个OLE对象Iunkown的指针
adLongVarBinary 205 长二进制值
adLongVarChar 201 长字符串值
adLongVarWChar 203 长NULL-中断字符串值
adNumeric 131 具有固定的精度和范围的扩展数字型。
adSingle 4 单精度浮点值
adSmallInt 2 2字节有符号整数
adTinyInt 16 1字节有符号整数
adUnsignedBigInt 21 8字节无符号整数
adUnsignedInt 19 4字节无符号整数
adUnsignedSmallInt 18 2字节无符号整数
adUnsignedTinyInt 17 1字节无符号整数
adUserDefined 132 未定义变量
adVarBinary 204 二进制值
adVarchar 200 字符串值
adVariant 12 OLE自动变量
adVarWchar 202 NULL-中断Unicode字符串
adWchar 130 NULL-中断Unicode字符串
==============================================================================Direction确定参数是输入参数,输出参数或存储过程的返回值,下表描述了所有你可以使用的Direction值:常数 值 描述
==============================================================================
adParamInput 1 输入参数(缺省值)
adParamOutput 2 输出参数
adParamInputOutput 3 输入/输出参数
adParamReturnValue 4 返回值
==============================================================================Size是参数的最大长度,以字节或字符为单位。Value是参数的值。Execute [RecordAffected] , [Parameters] , [Options] 或Execute ([RecordAffected] , [Parameters] , [Options])执行包含在CommandText属性中的SQL查询,SQL语句或SQL存储过程。当要返回数据集时,使用带括号的第二中Execute方法。在该命令执行后,RecordAffected变量内包含该命令所影响的记录的数目。Parameters是参数数组,可以覆盖以前添加到Command对象中的变量。使用Options,你可以使该命令执行的更有效,因为你利用发送给数据提供者(比如,SQL Server)有关要执行命令的类型。Options的值如下:常数 描述
==============================================================================
adCmdText 把CommandText作为一个命令的文本定义执行,比如SQL语句。
adCmdTable 把CommandText作为表的名称执行。
adCmdStoreProc 把CommandText作为存储过程执行。
adCmdUnknown 未知的命令(缺省值)。
==============================================================================Open [ConnectionString],[UserID],[Password]打开一个到数据源的连接。ConnectionString是数据源的名称(DSN)或者是包含以分号隔开的参数和值对的连接字符串。比如下面就是适用于SQL Server的例子:dsn=MyDatabase;uid=MyLoginName;pwd=MyPassword你可以使用在下表内的参数和值对:参数 值
==============================================================================
Provider 数据提供者的名称
Data Source 数据源的名称(比如,一个SQL Server的ODBC数据源)
User 在打开数据连接时所用的用户名
Password 在打开数据连接时所用的密码
File Name 已经预设好连接信息的与提供者相关的文件名
==============================================================================UserId是在打开数据连接时所要用的用户名。Password是在打开数据连接时所要用的密码。
==============================================================================
QueryType Criteria
==============================================================================
adSchemaAsserts CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCatalogs CATALOG_NAME
adSchemaCharacterSets
CHARACTER_SET_CATALOG
CHARACTER_SET_SCHEMA
CHARACTER_SET_NAME
adSchemaCheckConstraints CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCollation COLLATION_CATALOG
COLLATION_SCHEMA
COLLATION_NAMEadSchemaColumnDomainUsage DOMAIN_CATALOG
DOMAIN_SCHEMA
DOMAIN_NAME
COLUMN_NAMEadSchemaColumnPrivileges TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
GRANTOR
GRANTEE
adSchemaColumns TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaConstraintColumnUsage TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaConstraintTableUsage TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAMEadSchemaForeignKeys PK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAME
FK_TABLE_CATALOG
FK_TABLE_SCHEMA
FK_TABLE_NAMEadSchemaIndexs TABLE_CATALOG
TABLE_SCHEMA
INDEX_NAME
TYPE
TABLE_NAMEadSchemaKeyColumnUsage CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAMEadSchemaPrimaryKeys PK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAMEadSchemaProcedureColumns PROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
COLUMN_NAMEadSchemaProcedureParameters PROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMETER_NAME
adSchemaProcedures PROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMETER_TYPEadSchemaProviderTypes DATA_TYPE
BEST_MATCH
adSchemaReferentialConstraints CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAMEadSchemaSchemata CATALOG_NAME
SCHEMA_NAME
SCHEMA_OWNERadSchemaSQLLanguages 没有
adSchemaStatistics TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAMEadSchemaTableConstraints CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
CONSTRAINT_TYPE
adSchemaTablePriviledge TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
GRANTOR
GRANTEEadSchemaTables TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPEadSchemaTranslations TRANSLATION_CATALOG
TRANSLATION_SCHEMA
TRANSLATION_NAMEadSchemaUsagePrivileges OBJECT_CATALOG
OBJECT_SCHEMA
OBJECT_NAME
OBJECT_TYPE
GRANTOR
GRANTEEadSchemaViewColumnUsage VIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME
adSchemaViewTableUsage VIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME
adSchemaViews TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
==============================================================================
==============================================================================
adXactCommitRetaining 指明在调用CommitTrans方法时会自动开始一个新的事务过程。
adXactAbortRetaining 指明在调用RollbackTrans方法时会自动开始一个新的事务过程。
==============================================================================
CommandTimeOut
指明所有依靠数据连接的对象等待数据提供者回应的时间长度,以秒为单位。缺省时该属性的值为30。如果你设置该属性的值为0,ADO会永远的等待服务器的回应。ConnectionString
指明数据源(DSN)的名称或者包含以分号隔开的参数和值对的连接字符串。比如,下面的例子适用于SQL Server。dsn=MyDatabase;uid=MyLoginName;pwd=MyPassword
你可以在连接字符串中使用在下表所示的参数和值对。参数 值
==============================================================================
Provider 数据提供者的名称
Data Source 数据源的名称(比如,一个SQL Server的ODBC数据源)
User 在打开数据连接时所用的用户名
Password 在打开数据连接时所用的密码
File Name 已经预设好连接信息的与提供者相关的文件名
==============================================================================
ConnectionTimeOut指明Connection对象试着建立一个到数据提供者的连接时会等待的时间,以秒为单位。缺省时该属性的值为15秒,如果你设置该值为0,Connetion对象将会永久等待连接。CursorLocation指明使用那个游标库。该属性具有下表所示的值:常数 描述
==============================================================================
adUseClient 使用客户端的游标
adUseServer 使用服务器或驱动器的游标(缺省值)。
DefaultDatabase 指明连接时使用的缺省数据库。当已经指定缺省数据库时,你就不必在所有的SQL字符串内包含数据库名称。
IsolationLevel 指明连接的隔离等级。只有在调用BeginTrans方法后,该属性的新改变值才有效。该属性具有下表的值:
常数 描述
==============================================================================
adXactUnspecified 当数据提供者使用的隔离等级与你指定的不同时,该属性返回该值。
adXactChaos 指明你不能覆盖目前正由其他的隔离事务过程使用的改变。
adXactBrowse 指明你可以查看在其他事务过程中还没有确认的变化。
adXactReadUncommitted 和adXactBrowse一样。
adXactCursorStability 指明你不能查看在其他事务过程中还没有确认的变化(缺省值)。
adXactReadComitted 和adXactCursorStability一样
adXactRepeatableRead 除了允许重新查询以获得新的记录集之外,和adXactCursorStability一样 adXactIsolated 指明所有的事务过程都与其他事务过程隔离。
adXactSerialized 同adXactIsolated。
============================================================================== Mode指明在连接中改变数据可用的权限。该属性具有如下表所示的值:常数 描述
==============================================================================
adModeUnknown 未定(缺省值)。
adModeRead 只读权限。
adModeWrite 只写权限。
adModeReadWrite 可读、可写权限。
adModeShareDenyRead 防止其他人用读权限打开连接。
adModeShareDenyWrite 防止其他人用写权限打开连接。
adModeShareExclusive 防止其他人用读或写权限打开连接。
adModeShareDenyNone 防止其他人用任何权限打开连接。
============================================================================== Provider指明连接的数据提供者名称。缺省时,该属性的值为MSDASQL(Microsoft OLEDB ODBC 数据提供者)。State在连接对象使用异步传输(用adRunAsync)时使用。返回连接对象当前的状态。这个属性具有下表所示的值。常数 描述
==============================================================================
adStateClosed 对象已经关闭。
adStateOpen 对象处于打开状态。
============================================================================== Version
以字符串形式返回当前的ADO版本。
@Result varchar(10) output
as
select @Result='结果'
go--declare @str varchar(10)
--exec Cs @Result=@str out
--select @str
@Result varchar(10) output --//有一个参数@Result
as
select @Result='结果' --//返回一个结果,你能在ASP页面里得到
go
dim rs as adodb.recordsetset rs=cnx.execute "exec 存储过程名称"