Ich habe ein Problem mit einem Crystal Report, der Daten aus einer MySQL-Tabelle anzeigt. Ich bin derzeit die Daten direkt aus der Tabelle zu sammeln, aber wenn die Benutzer zur Eingabe von Parametern versuchen, entstehen Probleme, wie zum Beispiel:Gespeicherte Prozedur von Crystal Reports XI und MySQL mit Parametern
- Nullwerte für Parameter Fehler
- Parameter funktionieren nicht wie angegeben
Ich habe dann eine gespeicherte Prozedur erstellt, um Daten zurückzugeben, wenn ein Parameter leer ist und der MySQL-Server die Arbeit übernimmt und nicht der Crystal Reports-Server.
Crystal Reports scheint dies jedoch nicht zu erkennen und ich habe Probleme, die Ergebnisse des Verfahrens anzuzeigen.
Hier ist eine Kopie des Verfahrens ich verwende:
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;
Gibt es einen einfacheren Weg, dies zu tun, oder bin ich etwas falsch? Irgendwelche Vorschläge würden sehr geschätzt werden.
Crystal Reports nicht die gespeicherte Prozedur erkennen? Ich benutze nicht mysql, aber vielleicht einen anderen Datenbanktreiber. – dotjoe