CREATE proc proc_ss @sid int,@stime smalldatetime,@etime smalldatetime
as 
declare @i int,@starttime smalldatetime,@endtime smalldatetime, @hqid int
set @hqid=@sid
set @starttime=@stime
set @endtime=@etime
set @i=1+datediff(day,@starttime,@endtime)set rowcount @i
select identity(int,0,1) as num into # from sysobjects,syscolumns
set rowcount 0select 
    t.num,b.ts_sj,
    case when b.ts_sj is null then (select top 1 ts_jg from news_hq_bak where hqlb_id=@hqid
  and ts_sj<dateadd(day,t.num,@starttime) order by ts_sj desc)
         else b.ts_jg 
    end as ts_jg 
from 
    # t
left join
    news_hq_bak as b
on 
    dateadd(day,t.num,@starttime)=convert(varchar(10),b.ts_sj,120)
and 
    b.hqlb_id=@hqid
 
and
    ts_sj between @starttime and  @endtimedrop table #
GO
这个存储过程运行正常  但是我想用asp调用 请高手赐教

解决方案 »

  1.   

    asp怎么执行sql返回记录集就怎么执行,具体的sql用"exec proc_ss " & sid & ",'" & stime "','" & etime & "'"
      

  2.   

    参考:http://www.yfdmt.com/webmedia/build/aspsql.htm
      

  3.   

    存储过程最好改下:CREATE proc proc_ss @sid int,@stime smalldatetime,@etime smalldatetime
    as 
    ...--〉CREATE proc proc_ss @sid int,@stime smalldatetime,@etime smalldatetime
    as 
    set nocount on
    ...
      

  4.   

    zicxc(冒牌邹建 V0.3) ( ) 信誉:100    Blog  2006-10-31 10:59:00  得分: 0  "exec proc_ss " & sid & ",'" & stime "','" & etime & "'"
    这样他有返回值吗?  
     
      

  5.   

    zicxc(冒牌邹建 V0.3) 
    你直接给我改出来我认真看下
    现在学习中。
    希望能写得规范些
      

  6.   

    在.NET里边是还需要创建参数来接收返回值的,ASP里边不知道怎么接收,但执行就如二楼所说。
      

  7.   

    **通过Command对象调用存储过程**
        DIM MyComm,MyRst
        Set MyComm = Server.CreateObject("ADODB.Command")
        MyComm.ActiveConnection = MyConStr          'MyConStr是数据库连接字串
        MyComm.CommandText      = "getUserList"     '指定存储过程名
        MyComm.CommandType      = 4                 '表明这是一个存储过程
        MyComm.Prepared         = true              '要求将SQL命令先行编译
        Set MyRst = MyComm.Execute
        Set MyComm = Nothing    存储过程取得的记录集赋给MyRst,接下来,可以对MyRst进行操作。
        在以上代码中,CommandType属性表明请求的类型,取值及说明如下:
          -1   表明CommandText参数的类型无法确定
          1    表明CommandText是一般的命令类型
          2    表明CommandText参数是一个存在的表名称
          4    表明CommandText参数是一个存储过程的名称
      

  8.   

    通过exec调用存储过程一样不?
    与利用command两个在效率上,有差别吗
      

  9.   

    <!--#include file="adovbs.inc"-->
    set cmd = server.CreateObject("ADODB.command")'创建对象
    cmd.ActiveConnection = con'连接数据库的connection对象
    cmd.CommandType = adCmdStoredProc'指定命令为存储过程(用这个英文单词必须包含顶上的那个inc文件)
    cmd.CommandText = "user_dl"'存储过程名
    '参数说明,下边:(参数名,数据类型,参数类型,字符串长度,参数值)
    '参数类型adParamReturnValue的必须放在对象的第一个,意思为存储过程中的return值
    '前三项为必填值,
    set par0 = cmd.CreateParameter("return",adInteger,adParamReturnValue)'创建存储过程参数1
    set par1 = cmd.CreateParameter("name",adVarChar,adParamInput,20,Request.Form("names"))'创建存储过程参数2
    set par2 = cmd.CreateParameter("pass",adVarChar,adParamInput,20,Request.Form("pass"))'创建存储过程参数3
    cmd.Parameters.append = par0'将参数1加入对象中
    cmd.Parameters.append = par1'将参数2加入对象中
    cmd.Parameters.append = par2'将参数3加入对象中
    cmd.Execute'执行
    Response.Write cmd("return")'输出运行存储过程后返回的参数
    set cmd = Nothing'关闭释放对象
    建议你安装InterDev 用这工具有详细的参数提示