Hallo,
ich versuche eine einfache SQL Abfrage an LL zu übergeben. Dort bekomme ich eine Fehlermeldung, dass das Feld X nicht vorhanden sei.
Umgebung: .net 4.0,
DB: Firebird SQL
fbAnfragen := fbCon:CreateCommand()
// Join mit Aliases und aggregierten Feldern
// fbAnfragen:CommandText := “SELECT a.AUSSCHREIBER_ID, a.ANFRAGESTATUS, COUNT(*) AS ANZAHL, LIST(b.FIRMA) AS FIRMA FROM ECHOLOT_ANFRAGEN AS a LEFT JOIN ECHOLOT_KONTAKTE AS b ON a.AUSSCHREIBER_ID = b.KONTAKTID GROUP BY a.AUSSCHREIBER_ID, a.ANFRAGESTATUS ORDER BY a.AUSSCHREIBER_ID, a.ANFRAGESTATUS”
// Join mit Tablealiases
// fbAnfragen:CommandText := “SELECT * FROM ECHOLOT_ANFRAGEN AS a LEFT JOIN ECHOLOT_KONTAKTE AS b ON a.AUSSCHREIBER_ID = b.KONTAKTID”
// Join ohne Aliases
fbAnfragen:CommandText := “SELECT * FROM ECHOLOT_ANFRAGEN LEFT JOIN ECHOLOT_KONTAKTE ON AUSSCHREIBER_ID = KONTAKTID”
llProv := DbCommandSetDataProvider{}
llProv:AddCommand(fbAnfragen, “Anfragen” , AppGlobals.firebirdDF, AppGlobals.firebirdMF)
e03 := ListLabel{}
e03:DataSource := llProv
// e03:SetDataBinding(fbAnfragen, “”)
Es macht keinen Unterschied. ob ich die Daten mit SetDatenbinding() oder DataSource übergebe.
Es sieht so aus, als ob beim Ausführen des Reports die Felder noch einmal geprüft werden und dabei die Tablealiases und auch die aggregierten Felder wie COUNT(), LIST() etc. nicht gefunden werden. Entweder weil es sie beim Table nicht gibt (z.B. COUNT() ) oder weil sie im anderen Table (z.B. im joined table) liegen.
Beim Starten des Designmodus wird die SQL Abfrage genau wie oben geschrieben an den SQL Server geschickt (Habe ich über die Logs gesehen).
Muss ich hier noch einen Parameter setzen, damit Table- und Field-Aliases berücksichtigt werden?
Danke
Nikolaus Kern