servlet中调存储过程(SQLserver2000)问题!,奇怪!
-------存储过程(SQLserver2000)
CREATE PROCEDURE rpt_cust_month
@custname1 varchar(500),@disname varchar(100) ,@province varchar(100),
@kind varchar(50),@sdate varchar(20),@edate varchar(20),@userId varchar(100)
AS
set nocount on
declare @custname varchar(1000)
declare @amount numeric(18,4)
declare @income numeric(18,4)
declare @opdate datetime
declare @posmonth int
declare @fname varchar(20)
declare @tempstr varchar(1000),@tempstr1 varchar(20)
declare @command nvarchar(200)
---
delete T_rpt_cust_month
---
DECLARE cur CURSOR FOR
SELECT V_customer.F_custName, convert(varchar(10),T_tradeHead.F_tradeDate,120) as F_tradeDate, sum(T_tradeBody.F_opraAmount) as F_opraAmount,
sum(T_tradeBody.F_opraIncome) as F_opraIncome
FROM T_tradeHead INNER JOIN
V_customer ON
T_tradeHead.F_custID = V_customer.F_custID INNER JOIN
T_tradeBody ON T_tradeHead.F_ID = T_tradeBody.F_headId
where V_customer.F_districtID in (select F_districtID from V_userLimitRight1 where F_regName=@userId)
and V_customer.F_custName like '%'+@custname1+'%' and V_customer.F_districtName like '%'+ @disname+'%'
and V_customer.F_province like '%'+@province+'%' and V_customer.F_kind like '%'+@kind+'%'
and T_tradeHead.F_tradeDate >= @sdate and T_tradeHead.F_tradeDate <=@edate
group by V_customer.F_custName ,T_tradeHead.F_tradeDate
order by V_customer.F_custName,T_tradeHead.F_tradeDate
.......
----sevlet ,,,
.......
String sqlstr="{ call rpt_cust_month(?,?,?,?,?,?,?) }";
csmt=conn.prepareCall(sqlstr);
csmt.setString(1,sys_param[0]) ;//
csmt.setString(2,sys_param[1]) ;//
csmt.setString(3,sys_param[2]) ;//
csmt.setString(4,sys_param[3]) ;//
csmt.setString(5,sys_param[4]) ;//
csmt.setString(6,sys_param[5]) ;//
csmt.setString(7,sys_param[6]) ;//
csmt.execute();
rst=csmt.getResultSet();
............
上面,我在,查询分析器中,没有问题,如:rpt_cust_month '三','','','','2003-08-01','2004-01-01','admin' 可以,但是在servlet中,传同样的参数却不行,我
想可能是,like 语句的问题,,可改了一下,还是不对!!!!!!!同志们,,帮忙啊!