asp 调用 存储过程的问题

我想创建这样一个存储过程,
里面有两个Select 语句,
Select T.a1,T.id into #A from mytable T

Select C.id,#A.a1 from mytable C,#A where C.id = #A.id

让 command执行时返回第二条语句的结果?
-------------------Sql版--------------------------------------------
http://expert.csdn.net/Expert/topic/2098/2098643.xml?temp=.4524652
---------------------------------------------------------------

SET NOCOUNT ON
select z1 into #临时表1 from t1 where 条件1
select z1 into #临时表2 from t1 where 条件2

select t1.id,(select top1 z1 from 临时表1 where 关联 ) as writer,
(select z1 from 临时表2 where 关联) as check
from t1 where 条件
SET NOCOUNT OFF
---------------------------------------------------------------

调用数据库存储过程
< %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)
% >

Published At
Categories with Web编程
Tagged with
comments powered by Disqus