我在顯示來自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