28,390
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE pCqtjHzRy --存储过程名
--变量定义
@sql1 varchar(8000),
@subt varchar(8000),
@c_cqrq1 varchar(8),
@c_cqrq2 varchar(8)
AS
BEGIN
--变量赋值
set @sql1 = 'select c_name '
set @subt =' (select * from cqtj_data where ( c_cqrq between '+@c_cqrq1+' and '+@c_cqrq2+' )) '
--SQL语句
select @sql1 = @sql1 + ' , sum(case c_cqlb when ''' + c_cqlb + ''' then c_cqsl else 0 end) [' + c_cqlb + ']'
from (select distinct c_cqlb from cqtj_data) as a
set @sql1 = @sql1 + ' from '+@subt +' t'+' group by c_name '
END
GO
<%
ql_gethzry = "exec pCqtjHzRy '20140101' ,'20140301'"
Set rs_gethzry =conn.execute(sql_gethzry)
%>
这就搞定了 。我勒个去。折腾了我两天。分享一下吧 。
CREATE PROCEDURE pCqtjHzRy --存储过程名
--变量定义
@c_cqrq1 varchar(8),
@c_cqrq2 varchar(8)
AS
BEGIN
--变量赋值
declare @sql1 varchar(8000),@subt varchar(8000)
set @sql1 = 'select c_name '
set @subt =' (select * from cqtj_data where ( c_cqrq between '+@c_cqrq1+' and '+@c_cqrq2+' )) '
--SQL语句
select @sql1 = @sql1 + ' , sum(case c_cqlb when ''' + c_cqlb + ''' then c_cqsl else 0 end) [' + c_cqlb + ']'
from (select distinct c_cqlb from cqtj_data) as a
set @sql1 = @sql1 + ' from '+@subt +' t'+' group by c_name '
END
GO
ASP调用代码如下:
<%Dim cmd
Set cmd = Server.CreateObject("ADODB.Command") '建立命令对象
Set cmd.ActiveConnection=conn
cmd.CommandType = 4 '指定要执行的是一个存储过程 ,或值为4
cmd.CommandText = "{call pCqtjHzRy(?,?)}" '存储过程名称
cmd.Parameters.Append cmd.CreateParameter ("@c_cqrq1",adVarChar,adParamInput) '创建输入参数对象
cmd.Parameters.Append cmd.CreateParameter ("@c_cqrq2",adVarChar,adParamInput) '创建输入参数对象
cmd("@c_cqrq1")=c_cqrq1 '取得输入参数
cmd("@c_cqrq2")=c_cqrq2 '取得输入参数
Set rs_gethzry = cmd.Execute '执行存储过程
Set cmd = Nothing
%>
错误类型:
ADODB.Command (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
第 136 行
(cmd.Parameters.Append cmd.CreateParameter ("@c_cqrq1",adVarChar,adParamInput) '创建输入参数对象 )
数据库表结构:
1 ID int 4 0
0 c_name nvarchar 50 0
0 c_gh nvarchar 50 0
0 c_bm nvarchar 50 0
0 c_cqrq nvarchar 50 0
0 c_cqlb nvarchar 50 0
0 c_cqsl nvarchar 50 0
0 c_cqsy nvarchar 500 1
0 c_input nvarchar 50 0
0 c_inputsj nvarchar 50 0
0 c_memo nvarchar 500 1
请教,为什么总提示数据类型的错误?我看了一晚上,真的看不出来了。晕死了 。请高手指点。