Parameter-Abfrage nicht angezeigt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Parameter-Abfrage nicht angezeigt

Re: Parameter-Abfrage nicht angezeigt

von seve » Mo, 04.02.2008 20:29

Ich habs jetzt so gelöst, dass ich statt einer Parameter-Abfrage eine neue Tabelle erstellt habe, in der der Parameter eingegeben werden kann. Die Abfrage greift dann auf diese Tabelle zu.

Wenn man eine Parameter-Abfrage hat, kann man damit sowieso keinen Serienbrief machen. (Zumindest soviel ich gemerkt habe.) Daher kann ich die Parameter-Abfrage sowieso unbrauchbar...
Danke trotzdem für die Hilfe.
Gruss seve

Re: Parameter-Abfrage nicht angezeigt

von seve » Sa, 02.02.2008 07:52

Hi Barlee!

Mein Problem ist ja, dass meine Adressen-Abfrage mehrstufig ist. Ich brauche also die Parameterabfrage in der Hierarchie zuunterst, und dann mache anschliessend darauf andere Abfragen.

Ich hatte noch folgendes versucht:

Code: Alles auswählen

SELECT "Nachname", "Vorname", "Strasse", "Nr", "PLZ", "Ort" FROM "Kontakte" WHERE "Kategorie" = '1' AND "Gruppe" = :GruppenNummer AND "aktiv" = 'true'
als Temp.

Code: Alles auswählen

SELECT "Kontakte".* FROM "Kontakte", "temp" WHERE "Kontakte"."Nachname" = "temp"."Nachname"
Jetzt fragt er mich zwar nach dem Parameter, gibt dann aber folgenden Fehler: "The data content could not be loaded. No data is available"
Und im direkten SQL Modus kann man ohnehin keine SELECTs von Abfragen machen...

Mit folgendem klappts überhaupt nicht...

Code: Alles auswählen

SELECT "Kontakte"."Nachname" FROM "Kontakte"
INNER JOIN
SELECT "temp"."Nachname" FROM "temp"
ON "Kontakte"."Nachname" = "temp"."Nachname"
Gibt es nicht irgendeinen Weg, mit dem man mit einem View auf eine Abfrage zugreifen kann?
Gruss und danke

Re: Parameter-Abfrage nicht angezeigt

von Barlee » Fr, 01.02.2008 23:04

Hallo seve,

leider habe ich bzgl. des korrekten Syntax auch keine Idee. An das Fragezeichen hatte ich auch schon gedacht....
---
Eine Parameterabfrage als View zu speichern wird meiner Ansicht nach ohnehin nicht funktionieren.
Aus Deiner Abfrage

Code: Alles auswählen

SELECT
:GruppenNummer_eingeben AS "GruppeEingabe", "Nachname", "Vorname", "Strasse", "Nr", "PLZ", "Ort" FROM "Kontakte"
WHERE ( "Gruppe" = "GruppeEingabe" OR "Gruppe" + "GruppeEingabe" = "Gruppe" )
musst Du doch in diesem Fall keinen View erstellen, nur weil Du das Resultat weiterverwenden möchtest. Kommst Du hier nicht mit einem äußeren SELECT weiter?

Gruß Barlee

Re: Parameter-Abfrage nicht angezeigt

von seve » Fr, 01.02.2008 21:33

Hast du eine Ahnung, wie die lauten könnte? Mit

Code: Alles auswählen

"Gruppe" = ?
oder so gehts auch nicht...

Mein Problem ist ja vor allem, dass die Parameter nicht funktionnieren, wenn ich die Abfrage als Ansicht speichere. Aber ich denke, das ist zusammenhängend mit dem oben...

Re: Parameter-Abfrage nicht angezeigt

von Barlee » Fr, 01.02.2008 21:28

Hallo seve,
Wenn ich also die o.g. Option aktiv habe, fragt er mich nicht nach dem Parameter.
Ich vermute, dass die Syntax für Parameterabfragen in diesem Modus eine andere ist.

Re: Parameter-Abfrage nicht angezeigt

von seve » Mi, 30.01.2008 12:06

Ich bin das CASE WHEN jetzt also umgangen, habe die Option "SQL direkt ausführen" deaktiviert. Mein Code sieht nun folgendermassen aus:

Code: Alles auswählen

SELECT
:GruppenNummer_eingeben AS "GruppeEingabe", "Nachname", "Vorname", "Strasse", "Nr", "PLZ", "Ort" FROM "Kontakte"
WHERE ( "Gruppe" = "GruppeEingabe" OR "Gruppe" + "GruppeEingabe" = "Gruppe" )
Nun möchte ich das Resultat weiter verwenden; ich speichere die Abfrage als Ansicht.
Das Problem stellt sich weiterhin. Wenn ich die Ansicht öffnen will, fragt er nicht nach dem Parameter... Das gleiche Ergebnis, wie wenn ich "SQL direkt ausführen" aktiviert habe.

Nun habe ich (glaub ich) wirklich keine Idee mehr...
Gruss

Re: Parameter-Abfrage nicht angezeigt

von seve » Di, 29.01.2008 13:43

Hallo,
Ich hatte es also falsch im Kopf; was nicht geht, wenn "SQL direkt ausführen" nicht aktiv ist, ist CASE WHEN.
Ich habe das Problem in meiner Adress-Datenbank (siehe viewtopic.php?f=8&t=15633 ). Dort habe ich eine Abfrage mit Parameterabfrage, die mir Adressen aus einer bestimmten Gruppe liefert. Wenn aber bei der Parametereingabe nichts eingegeben wird, sollen alle Einträge angezeigt werden.
Ich habe folgenden Code:

Code: Alles auswählen

SELECT
:GruppenNummer_eingeben AS "GruppeEingabe",
"Gruppe", "Nachname", "Vorname", "Strasse", "Nr", "PLZ", "Ort"
FROM "Kontakte"
WHERE
"Gruppe" =
(CASE
	WHEN "GruppeEingabe" = ''
	THEN "Gruppe"
	ELSE "GruppeEingabe"
END)
Wenn ich also die o.g. Option aktiv habe, fragt er mich nicht nach dem Parameter. Wenn ich sie deaktiviere, kriegt er das mit dem CASE WHEN nicht hin.

???

Re: Parameter-Abfrage nicht angezeigt

von Barlee » Mo, 28.01.2008 21:48

Hallo seve,

CONCAT benötigt nicht zwangsläufig diese Option.
Folgendes Bild zeigt eine kleine Abfrage. Bei Ausführung wird der Parameter erfragt. SQL direkt ausführen ist nicht aktiviert.
Parameter.jpg
Parameter.jpg (29.96 KiB) 3212 mal betrachtet
Gruß Barlee

Parameter-Abfrage nicht angezeigt

von seve » Mo, 28.01.2008 13:22

Hallo,

Ich hab ein kleines Problem. Ich hab eine Abfrage, die etwa so aussieht:

Code: Alles auswählen

SELECT * FROM "Tabelle" WHERE "Kriterium" = :Kriterium_hier_eingeben
Das funktionniert, solang ich die Option "SQL-Kommando direkt ausführen" nicht aktiviert habe.
Meine Abfrage benötigt aber diese Option (weil u.a. noch ein CONCAT vorkommt). Wenn diese Option dann aktiviert ist, fragt Base nicht mehr nach dem Kriterium, sondern liefert nur eine leere Abfrage.

Hat jemand eine Idee?

Gruss Seve

Nach oben