You are not logged in.
Pages: 1
Hallo,
wenn man in der Dynamischen Liste den Parametertyp "Checkboxes" im Multiselect Modus verwendet, und keines der Kästchen auswählt , so wird in der hinterlegten SQL-Query
$X{IN, wert, p} zu 0=0 umgewandelt (das gleiche gilt für die anderen mutliselect parametertypen). Ich habe aber noch eine ältere Dynamische Liste (die wurde in einer RS-Version vor RS3.1.0-6010 erstellt) bei der
$X{IN, wert, p} zu "wert IN $p" umgewandelt wird wenn ich keines der Kästchen ankreuze. Sprich, wenn ich den alten Report ausführe wird $X{IN, wert, p} zu "wert IN $p" umgewandelt und wenn ich diesen Bericht dupliziere und mit denselben Parametern nochmal ausführe wird $X{IN, wert, p} zu 0=0 umgewandelt. Kann es sein, dass das SQL string replace Verhalten bei diesen Parametertyp geändert wurde?
Danke und schöne Grüße,
Werther
Offline
Hallo Werther,
was genau meinst Du mit "wert IN $p"? Kannst Du bitte ein komplettes SQL Statement posten, wenn kein Wert ausgewählt wird?
Viele Grüße
Eduardo
Offline
Klar:
SQL-Queryabschnitt der dynamischen Liste:
where $X{IN,order_status, status }
--status : Parametername
--order_status : Tabellenspalte
Wird im alten Bericht zu
where order_sta IN ($9)
konvertiert. Im duplizierten Bericht (mit exakt derselben Parametereingabe) wird es stattdessen zu
where 0 = 0
umgewandelt.
Offline
Hallo Werther,
ist "where order_sta IN ($9) " ein gültiges SQL -Queryabschnitt, bzw. kannst du das direkt so zu deiner DB schicken?
Ich kenne das nur so: "where order_sta IN (?)" bei PreparedStatements. Welche DB verwendest du ?
Und was steht in der Variable $9 bei leeren Parametern?
Ich bin mir nicht sicher ob es früher anders war, aber im ReportServer 3 benutzen wir bei leeren Parametern 0 = 0 by-design:
https://reportserver.net/en/guides/admi … arameters/
"Please observe that if no parameter is selected, this will by default translate in "All values are valid"."
Wir verwenden dafür die Jasper Konvention:
https://community.jaspersoft.com/docume … rs-queries
"If the parameter is null or contains an empty list, meaning no value has been set for the parameter, the entire $X{} clause is evaluated as the always true statement “0 = 0”."
Viele Grüße
Eduardo
Offline
Hallo Eduardo,
where "order_sta IN ($9)" wird zu "where order_sta IN (?)" umgewandelt. Welcher Wert aber Postgresql für die Variable einsetzt kann ich in der pg_stat_activity von Postgres nicht ermitteln.
Jedefalls hast du aber meine Frage beantwortet, dass bei leeren Parametern in ReportServer 3 schon immer 0=0 eingesetzt wurde. Das wollte ich nur nochmal sicher sein. Das Problem muss also irgendwo bei uns liegen und wir können das Thema schließen.
Danke und schöne Grüße ,
Werther
Offline
Pages: 1