Grid configurator Query/Param Problem

Teresa Grün

Hallo zusammen,


 


ich habe eine Abfrage geschrieben, welche bestenfalls in einem Grid über einen Menüklick aufgerufen werden soll.


Also habe ich mich am Grid configurator versucht.


Ich benutze Design Parameter und habe diese auch vorher angelegt. Wenn man für die Parameter keinen Wert eingibt soll einfach alles selektiert werden.


Bis dahin kein Problem, jedoch bekam ich jedesmal beim Testen die Fehlermeldung "Failed to resolve parameters" wenn ich bei der Parametereingabe einfach auf "OK" klickte ohne Eingaben zu machen (also alles leer lies!).. mit den leeren Werten funktionierte die Abfrage im SQL-Server jedoch einwandfrei.


 


Ich wollte mit einer simplen "Select Feld FROM OITM WHERE ItemCode = '[%Parameter]'" austesten ob es eventuell doch an der Query lag, doch seit diesem Versuch bekomme ich jedesmal wenn ich im 4. Tab die Spalten aus der Query lesen möchte die Fehlermeldung "Failed to parse the query..." und im debug log finde ich dazu "Invalid column name '%Parameter'..


[attachment=421:QueryFail.PNG]


 


 


Vielen Dank schonmal für eure Hilfe!


 


Hier mein Query:



SELECT
U_KAS_ZchNr as Zeichnungs_ArtikelNr,
U_KAS_Benennung as Benennung,
CAST(U_KAS_Bemerkung as nvarchar(max)) as Bemerkung,
U_KAS_Dicke as Dicke,
U_KAS_Breite as Breite,
U_KAS_AuDM as Aussendurchmesser,
U_KAS_InDM as Innendurchmesser,
U_KAS_Laenge as Länge,
U_KAS_Material as Mat,
U_KAS_a as a,
U_KAS_EUR as EUR,
U_KAS_DM as DM,
U_KAS_Datum as Datum,
U_KAS_AgbNr as AgbNr,
U_KAS_Kunde as Kunde,
U_KAS_Ort as Ort,
U_KAS_nGF as nGF,
U_KAS_Befstgb as Befstgb,
U_KAS_tGF as tGF,
U_KAS_GFDM as GFDurchmesser,
U_KAS_M as M,
U_KAS_L as L,
U_KAS_LBd as LBd,
U_KAS_BdDM as BdDurchmesser
FROM
[@KAS_Abmessung] T2
WHERE
T2.U_KAS_Dicke = case when [%Dicke] = 0 then T2.U_KAS_Dicke else [%Dicke] end
or T2.U_KAS_Breite = case when [%Breite]= 0 then T2.U_KAS_Breite else [%Breite] end
or T2.U_KAS_AuDM = case when [%AussenDM] = 0 then T2.U_KAS_AuDM else [%AussenDM] end
or T2.U_KAS_InDM = case when [%InnenDM] = 0 then T2.U_KAS_InDM else [%InnenDM] end
or T2.U_KAS_Laenge = case when [%Laenge] = 0 then T2.U_KAS_Laenge else [%Laenge] end
or T2.U_KAS_a = case when '[%a]' = '' then T2.U_KAS_a else '[%a]' end
or T2.U_KAS_nGF = case when '[%nGF]' = '' then T2.U_KAS_nGF else '[%nGF]' end
or T2.U_KAS_tGF = case when '[%tGF]' = '' then T2.U_KAS_tGF else '[%tGF]' end
or T2.U_KAS_GFDM = case when '[%GFDM]' = '' then T2.U_KAS_GFDM else '[%GFDM]' end
or T2.U_KAS_M = case when '[%M]' = '' then T2.U_KAS_M else '[%M]' end
or T2.U_KAS_L = case when [%Laenge] = 0 then T2.U_KAS_L else [%Laenge] end
or T2.U_KAS_LBd = case when [%LBd] = 0 then T2.U_KAS_LBd else [%LBd] end
or T2.U_KAS_BdDM = case when '[%BdDM]' = '' then T2.U_KAS_BdDM else '[%BdDM]' end
UNION ALL
SELECT
ItemCode,
ItemName,
CAST(FrgnName as nvarchar(max)),
U_KAS_Dicke, U_KAS_Breite,
U_KAS_AussenDM,
U_KAS_InnenDM,
U_KAS_HLaenge,
U_KAS_LegzuGrp,
'' as a,
0 as EUR,
0 as DM,
NULL as Datum,
'' as AgbNr,
'' as Kunde,
'' as Ort,
'' as nGF,
'' as Befstgb,
'' as tGF,
'' as GFDM,
'' as M,
'' as L,
0 as LBd,
'' as BdDM
FROM
OITM T1
WHERE
T1.U_KAS_Dicke = case when [%Dicke] = 0 then T1.U_KAS_Dicke else [%Dicke] end
or T1.U_KAS_Breite = case when [%Breite] = 0 then T1.U_KAS_Breite else [%Breite] end
or T1.U_KAS_AussenDM = case when [%AussenDM] = 0 then T1.U_KAS_AussenDM else [%AussenDM] end
or T1.U_KAS_InnenDM = case when [%InnenDM] = 0 then T1.U_KAS_InnenDM else [%InnenDM] end
or T1.U_KAS_HLaenge = case when [%Laenge] = 0 then T1.U_KAS_HLaenge else [%Laenge] end



Teresa Grün

Update:


 


Habe alle Parameter in ' gesetzt..nun funktioniert zwar das parsing der query wieder, aber ich bekomme immernoch "failed to resolve parameters" wenn ich die Preview ansehen möchte.


Irgendwelche Ideen?


M.Zurbrüggen

Was mir hier auf Anhieb auffällt, ist, dass es die beiden Abfragen eine unterschiedliche Anzahl an Spalten haben. Bei einem Union müssen die Spalten aber zueinander passen.


Desweiteren sind aber alle Parameter angelegt?


Teresa Grün

Nein es sind gleich viele Spalten, bei dem unteren statement stehen zwei in einer Zeile (Breite und Dicke), sorry deswegen, hab ich wohl bei der übersichtlichkeit nicht aufgepasst..aber dann hätte das statement ja auch im sql server nicht funktioniert :)


 


Ja die Parameter sind alle angelegt und im Grid hinzugefügt :/


M.Zurbrüggen

mmm, ok. Das habe ich übersehen.


Syntaktisch scheint mir hier dann soweit alles richtig. Das einzige, was mich dann noch enfallen würde, wäre das in der Parameterdefinition evt etwas schief gelaufen ist. Evt ein Schreibfehler?


Leider kann man das hieraus ja nicht ersehen...


Teresa Grün

Hab das mal überprüft, aber scheinen alle ohne Schreibfehler zu sein. Hier mal ein Bild von den Parametern:


fl7r3cw8.png


 


Was mir grade noch aufgefallen ist: In der 2. Where-Klausel benutze ich nicht alle Parameter..kann es eventuell daran liegen? Und wenn ja, wie mache ich das dann? Weil es die Felder ja in der zweiten Tabelle nicht gibt und die Where-Klausel mit den fehlenden Parametern in diesem Fall Unsinn wäre.


Teresa Grün

Hallo,


 


gerade nochmal hier rüber gestolpert. Das Problem hat sich lange erledigt. Damit ihr auch mal wisst was Sache ist:


 


Es lag weder an der Query noch an den Paramtern,


hatte nach einem Ticket einen Hotfix für das Problem bekommen der in der neuesten customize Version auf jeden Fall wohl dabei sein sollte.


 


Grüße!


0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post