Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all articles
Browse latest Browse all 1772

SQL Server 2008 R2 Standard: ReportServices Parameter (Integer u. String)

$
0
0

Hallo zusammen,

wir setzen die Report Services 3.0 ein. Jetzt gibt es die Anforderung über die Reports mit Parametern in verschiedenen Feldern nach Inhalten zu suchen. Dafür gibt es ja auch die Parameter.

Ich habe im Berichtsdesigner einen Parameter erstellt, der als Variable in der SQL-Anweisung in der WHERE-Klausel auftritt.

Wird die Abfrage ausgeführt, kommt auch der Dialog hoch, in dem ich die Variable eingeben soll.

Wenn die WHERE-Klausel aber über ein INTEGER-Feld geht, springt mir der Designer um die Ohren, da eine Konvertierung stattfinden soll, was ich doch eigentlich gar nicht will. Was wahrscheinlich daran liegt, dass der Parameter als TEXT deklariert ist (was auch so sein muss)

Folgende Meldung kommt hoch:

TITEL: Microsoft SQL Server Report Builder
------------------------------

Fehler beim Lesen der Daten aus dem Abfrageresultset.
Fehler beim Konvertieren des varchar-Werts '%' in den int-Datentyp.

------------------------------
ZUSÄTZLICHE INFORMATIONEN:

Fehler beim Konvertieren des varchar-Werts '%' in den int-Datentyp. (Microsoft SQL Server, Fehler: 245)

Folgender Befehl soll ausgeführt werden:

select
BESTELLWESEN.BESTELLNR as BestellNr
, BESTELLWESEN.BESTELLWERT as Bestellwert
, BESTELLWESEN.BETREFF BestellBetreff
, BESTELLWESEN.VORGANG as BestellVorgang
, BESPOS.VORGANG as VorgangNrPos
, VORGANG.BETREFF as VorgangBetreff
, POSITION as Pos
, MENGEBESTELLT as Menge
, EINHEIT as Einheit
, ARTTEXT as Bezeichnung
, MENGEGELIEFERT as Geliefert
, MENGEGEBUCHT as Berechnet
, EPREIS as EK
, EPREIS * MENGEBESTELLT / PREISEINHEIT as Gesamt
, BESPOS.LIEFTERMIN as Liefertermin
, BESPOS.LIEFTERMINIST as LieferterminIST

from BESPOS


inner join BESTELLWESEN on BESTELLWESEN.ROWBESTELL = BESPOS.ROWBESTELL
LEFT join VORGANG on BESPOS.VORGANG = VORGANG.VORGANGNR

where
BESTELLWESEN.BETREFF LIKE '%' + @Finder + '%' COLLATE Latin1_General_CI_AS or
BESTELLWESEN.VORGANG LIKE '%' + @Finder + '%' COLLATE Latin1_General_CI_AS or
BESPOS.ARTTEXT LIKE '%' + @Finder + '%' COLLATE Latin1_General_CI_AS or
VORGANG.BETREFF LIKE '%' + @Finder + '%' COLLATE Latin1_General_CI_AS

BESTELLWESEN.VORGANG ist INTEGER

Selbst wenn ich BESTELLWESEN.VORGANG = @Finder or schreibe, kommt die gleiche Meldung.

Der Parameter ist als TEXT deklariert (was die Meldung erklärt) Aber wie ist die Lösung des Problems mit einer Variablen. Zwei Variablen geht logisch nicht.


Viewing all articles
Browse latest Browse all 1772

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>