【发布时间】:2009-08-05 03:25:11
【问题描述】:
我在使用显示 MySQL 表中数据的 Crystal Report 时遇到问题。我目前直接从表中收集数据,但是当用户尝试输入参数时,会出现以下问题:
- 返回错误的参数为空值
- 参数未按规定工作
然后我创建了一个存储过程以在参数为空时返回数据,并使 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,但可能使用不同的数据库驱动程序。
标签: mysql stored-procedures crystal-reports report