CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

asp调用储存过程,怎么弄都不成功,郁闷,帮我看看,谢谢先

楼主lovcal(枫兮)2005-05-25 13:59:16 在 Web 开发 / ASP 提问

Set   ComSP=Server.CreateObject("ADODB.Command")  
  CmdSP.Commandtype   =   adCmdStoredProc  
  CmpSP.Parameters.Append   CmpSP.CreateParameter("@dDate",adDate,adParamInput,"2005-2-1")  
  CmpSP.Parameters.Append   CmpSP.CreateParameter("@FromDate",adDate,adParamInput,"2005-1-26")  
  CmpSP.Parameters.Append   CmpSP.CreateParameter("@ToDate",adDate,adParamInput,"2005-2-25")  
  Set   CmpSP.ActiveConnection=conn  
  ComSP.CommandText="dbo.mp_DaySaleLY"  
  Set   Rs2=Server.CreateObject("ADODB.Recordset")  
  Rs2.CursorType=3  
  Rs2.open   CmpSP,,1,1  
  其中conn连接字符串,dbo.mp_DaySaleLY储存过程在SQLServer中是过多次,没有问题  
  但上面代码执行却不行,帮忙看看是什么原因  
  在asp调用储存过程   是不是还要包含什么声明之类的?  
  -----------------初学者,呵呵!  
  问题点数:50、回复次数:10Top

1 楼libao1983(神勇无敌小豹子)回复于 2005-05-25 14:01:29 得分 5

不要用command  
  用connection  
  然后,execute   存储过程名Top

2 楼lovcal(枫兮)回复于 2005-05-25 14:03:49 得分 0

我要获取Rs2的记录个数,就是要显示Rs2,可以么?Top

3 楼michael3a()回复于 2005-05-25 14:08:10 得分 5

应该没什么问题,是不是你的con定义的有问题阿Top

4 楼lovcal(枫兮)回复于 2005-05-25 14:14:23 得分 0

Connstr   =   "DRIVER={SQL   Server};SERVER="&DataServer&";UID="&LoginUser&";PWD="&LoginPass&";DATABASE="&DataBase  
  Set   Conn=Server.CreateObject("ADODB.CONNECTION")  
  Conn.Open   Connstr  
  我以前使用adoRecordset直接查询的,现在改为用储存过程,应该没问题吧  
  但我显示rs.recordcount都不行啊,是不是我参数什么的写错了?Top

5 楼xjb_netboy(绝对有问题)回复于 2005-05-26 09:52:55 得分 25

我有一个调成功的例子,贴出来,供楼主,参考。    
   
  /*  
  Object:  
  Created     By:   xjb  
  Version:   1.0  
  Description:    
  Usage:  
  Created     :     2005/1/4             Last   Changed:   2005/1/4  
  Notes:    
  --WITH   ENCRYPTION    
  */  
  /*  
   
  CREATE   TABLE   [dbo].[EP_USRInfo]   (  
  [USR_ID]   [int]   IDENTITY   (200551,   1)   NOT   NULL   ,  
  [EP_ID]   [int]   NULL   ,  
  [USR_NAME]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_EMAIL]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_Static]   [bit]   NULL   ,  
  [USER_Checked]   [bit]   NULL   ,  
  [USer_CheckTime]   [smalldatetime]   NULL   ,  
  [USR_CreateTime]   [smalldatetime]   NOT   NULL    
  )   ON   [PRIMARY]  
   
   
  SELECT   USR_ID,   EP_ID,   USR_NAME,   USR_EMAIL,   USR_Static,   USER_Checked,    
              USer_CheckTime,   USR_CreateTime  
  FROM   EP_USRInfo  
   
   
  INSERT   INTO   EP_USRInfo  
              (USR_ID,   EP_ID,   USR_NAME,   USR_EMAIL,   USR_Static,   USER_Checked,    
              USer_CheckTime,   USR_CreateTime)  
  VALUES   (,,,,,,,)  
   
   
  CREATE   TABLE   [dbo].[EP_USR]   (  
  [USR_ID]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NOT   NULL   ,  
  [EP_TestID]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_STATUS]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_NO]   [nvarchar]   (2)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_REPORT_ID]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [USR_CreateTime]   [smalldatetime]   NULL    
  )   ON   [PRIMARY]  
   
  SELECT   USR_ID,   EP_TestID,   USR_STATUS,   USR_NO,   USR_REPORT_ID,    
              USR_CreateTime  
  FROM   EP_USR  
   
  INSERT   INTO   EP_USR  
              (USR_ID,   EP_TestID,   USR_STATUS,   USR_NO,   USR_REPORT_ID,   USR_CreateTime)  
  VALUES   (,,,,,)  
   
  */  
  CREATE   PROCEDURE   [dbo].[EPaddUser]  
  @EP_ID     INT,  
  @USR_NAME   varchar   (255)   ,    
  @EP_TestID     varchar   (255)    
  as  
  --@USR_EMAIL     @USR_ID,  
  declare   @USR_ID   as   int  
  declare   @USR_EMAILString   as       nvarchar   (255)    
  --SELECT   @USR_ID=   IDENT_CURRENT('EP_USRInfo   ')     +     (SELECT     IDENT_INCR('EP_USRInfo'))  
  INSERT   INTO   EP_USRInfo     (EP_ID,   USR_NAME,USR_TestIDString)     VALUES     (@EP_ID,   @USR_NAME,@EP_TestID)  
  SELECT   @USR_ID=   IDENT_CURRENT('EP_USRInfo   ')      
   
  --INSERT   INTO   EP_USR           (USR_ID,   EP_TestID)   VALUES       (@USR_ID,   @EP_TestID)  
   
  declare   @string   varchar(8000)  
   
  select   @string   =   @EP_TestID  
   
  declare   @i   as   int,@j   int  
  select   @i=charindex(',',@string+','),@j=1  
  while   @i>1  
  begin  
  print   '-----------------------------------'  
  print   '序号:'  
  print   @j  
  print   '值:'  
  print   left(@string,@i-1)     +   '   yes'  
   
  --'  
   
  declare   @tempVar3   varchar(200)  
  --select   @tempVar3=cast('虚拟邮箱'   as   varchar(50))   +cast(@USR_ID   as   varchar(50))   +   CAST(   left(@string,@i-1)as   varchar(2))   +   cast('@szhr.gov.cn'   as   varchar(50))  
   
  select   @tempVar3=cast(@USR_ID   as   varchar(50))   +   CAST(   left(@string,@i-1)as   varchar(2))   +   cast('@szhr.gov.cn'   as   varchar(50))  
   
  print   '-------------------'  
   
  print   @tempVar3  
  print   '-----------------'  
   
  INSERT   INTO   EP_USR               (USR_ID,   EP_TestID,USR_EMAIL)     VALUES   (@USR_ID,   left(@string,@i-1),   @tempVar3)  
  select   @string=substring(@string,@i+1,8000)  
  ,@i=charindex(',',@string+',')  
  ,@j=@j+1  
  --'处理程序  
   
  end  
  GO  
   
   
  <%  
  'set   rs=server.createobject("ADODB.recordset")  
    set   Cmd=server.createobject("ADODB.Command")  
       
          Cmd.ActiveConnection   =   con  
          Cmd.CommandType   =   adCmdStoredProc  
          Cmd.CommandText   =   "EPaddUser"  
             
      '     Cmd.Parameters.Append     Cmd.CreateParameter("@ReturCode",adInterger,adparamReturnValue)  
  Cmd.Parameters.Append   Cmd.CreateParameter("@EP_ID",   adInteger,   adParamInput)                          
          Cmd("@EP_ID")   =   session("cid")  
  Response.Write("<br>")  
  '---  
          Cmd.Parameters.Append   Cmd.CreateParameter("@USR_NAME",adVarChar,adparamInput,255)  
          Cmd("@USR_NAME")   =   request("USR_NAME")  
  response.Write(request("USER_NAME"))  
  Response.Write("<br>")  
  '---  
          Cmd.Parameters.Append   Cmd.CreateParameter("@EP_TestID",adVarChar,adparamInput,255)  
          Cmd("@EP_TestID")   =checkvar  
          response.Write(checkvar)        
  Response.Write("<br>")  
  Response.Write("End")  
  Cmd.Execute  
   
  %>  
   
  另外,在IIS中的帮助例子中有一个调用sp过程的例子,楼主可以调一下。Top

6 楼lovcal(枫兮)回复于 2005-05-26 10:09:36 得分 0

我想要获取储存过程执行的返回记录集啊,到现在为止,直接用recordset.open   的方法,只能手动遍历记录集取得返回记录的个数,但用ADOCommand的方法,就是怎么都没有,好郁闷,实在不行只能用第一种笨方法了……Top

7 楼langzi520(虽左但右)回复于 2005-05-26 16:12:32 得分 5

慢慢学     莫急!Top

8 楼itzhiren(itzhiren)回复于 2005-05-26 16:55:17 得分 5

Rs2.open   CmpSP,,1,1  
  这个怎么没有数据库连接句柄?Top

9 楼lovcal(枫兮)回复于 2005-05-27 09:37:59 得分 0

我也是刚刚看到某位大虾的例子,我对这一点头绪都没有  
  谁给我一个简单的例子试试啊,就是查询,然后返回记录集在一个adodataset中,可以获取记录个数就行,谢谢了Top

10 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-05-27 09:46:24 得分 5

sql="exec   SQLproc   1,2,3"  
  set   rs=cn.execute(sql)  
  简单就可以了Top

相关问题

  • 水晶报表 ASP调用成功
  • 在ASP里面怎么调用后台SQLServer的储存过程?
  • 把.net组件转为COM组件后,VB调用成功,asp调用不成功?郁闷
  • ASP调用OUTLOOK或EXCEL 不能成功 ,问题出在哪里
  • asp中调用api
  • asp调用问题
  • ASP参数调用!
  • asp中调用word
  • ???请问,我用ATL做了一个COM组件,在VB和ASP中都调用成功,为何在客户端VBScript脚本中却调用失败???
  • 很急的问题:我用VB写了一个com用vb调用成功!然后在 asp中调用出来如下问题:(在线等!)

关键词

  • cmpsp
  • 调用
  • checktime
  • usr
  • ep
  • 储存过程
  • 个数
  • 例子
  • addate
  • rs2

得分解答快速导航

  • 帖主:lovcal
  • libao1983
  • michael3a
  • xjb_netboy
  • langzi520
  • itzhiren
  • superdullwolf

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo