我在显示来自MySQL表的数据的Crystal Report中遇到问题。我目前直接从表收集数据,但是,当用户尝试输入参数,出现问题如:带有参数的Crystal Reports XI和MySQL存储过程
- 空值参数返回错误
- 参数无法正常运转的规定
然后我创建了一个存储过程,以便在参数为空时返回数据,并使MySQL服务器执行工作而不是Crystal Reports服务器。
但是Crystal Reports似乎没有认识到这一点,我在显示过程结果时遇到了一些麻烦。
这里是我使用的程序的副本:
Create Procedure sp_report
(IN @param1 varchar(64),
IN @param2 varchar(64),
IN @param3 int)
Begin
IF @param1 is null AND @param2 is null AND @param3 is null Then
Select * from tblData
ELSE IF @param1 is null AND @param2 is not null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field2 = @param2
ELSE IF @param1 is not null AND @param2 is not null AND @param3 is null then
Select * from tblData where field2 = @param2 and field1 = @param1
ELSE IF @param1 is not null AND @param2 is null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field1 = @param1
ELSE IF @param1 is not null AND @param2 is null AND @param3 is null then
Select * from tblData where field1 = @param1
ELSE IF @param1 is null AND @param2 is not null AND @param3 is null then
Select * from tblData where field2 = @param2
ELSE IF @param1 is null AND @param2 is null AND @param3 is not null then
Select * from tblData where field3 = @param3
ELSE IF @param1 is not null AND @param2 is not null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field2 = @param2 and field1 = @param1
END;
是否有更简单的方法来做到这一点还是我做错了什么?任何建议将不胜感激。
水晶报表无法识别该存储过程?我不使用mysql,但也许使用不同的数据库驱动程序。 – dotjoe 2009-07-14 20:35:25