Parameterabfragen

Für bestimmte Aufgaben werden Abfragen benötigt, die bei sich wiederholenden Aufrufen die Übergabe eines wechselnden Werts ermöglichen. Angenommen, Sie führen des Öfteren eine Abfrage aus, mit der alle title_ids eines Autors abgerufen werden. In diesem Fall führen Sie für jede Anforderung dieselbe Abfrage aus, wobei jedoch die ID bzw. der Name des Autors jeweils unterschiedlich ist.

Zum Erstellen einer Abfrage, die bei jedem Aufruf mit unterschiedlichen Werten ausgeführt werden kann, verwenden Sie Parameter innerhalb der Abfrage. Ein Parameter ist ein Platzhalter für einen Wert, der erst beim Ausführen der Abfrage festgelegt wird. Eine SQL-Anweisung mit einem Parameter könnte folgendermaßen lauten, wobei "?" als Parameter für die ID des Autors dient:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Verwendungsmöglichkeit von Parametern

Sie können Parameter als Platzhalter für Literalwerte verwenden, d. h. sowohl für Textwerte als auch für numerische Werte. Sehr häufig werden Parameter als Platzhalter in Suchbedingungen für einzelne Zeilen oder Zeilengruppen verwendet (also in den WHERE- oder HAVING-Klauseln einer SQL-Anweisung).

Einige Datenbanken ermöglichen die Angabe von Parametern als Platzhalter in Ausdrücken. Angenommen, Sie möchten Rabattpreise berechnen und bei jedem Ausführen der Abfrage einen anderen Rabattwert angeben können. Hierzu lässt sich folgender Ausdruck verwenden:

(price * ?)

Ausführliche Informationen zu den verschiedenen Verwendungsmöglichkeiten für Parameter finden Sie in der Dokumentation zu der von Ihnen verwendeten Datenbank.

Angeben unbenannter und benannter Parameter

Sie können zwei Parametertypen angeben: unbenannte und benannte Parameter. Ein unbenannter Parameter wird durch ein Fragezeichen (?) bezeichnet, das Sie in einer Abfrage an der Position einfügen, an der Sie einen Literalwert abfragen oder einsetzen möchten. Wenn Sie beispielsweise einen unbenannten Parameter für die Suche nach einer Autoren-ID in der Tabelle titleauthor verwenden, ergibt sich folgende Anweisung im SQL-Bereich:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Wenn Sie die Abfrage im Abfrage- und Ansicht-Designer ausführen, wird Dialogfeld "Abfrageparameter" und "?" als Name des Parameters angezeigt.

Sie können einem Parameter auch einen Namen zuweisen. Benannte Parameter sind dann hilfreich, wenn in einer Abfrage mehrere Parameter enthalten sind. Wenn Sie z. B. benannte Parameter für die Suche nach dem Vor- und Nachnamen eines Autors in der Tabelle authors verwenden, ergibt sich folgende Anweisung im SQL-Bereich:

SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
      au_lname = %last name%

Tipp

Definieren Sie Präfix- und Suffixzeichen, bevor Sie eine Abfrage mit benannten Parametern erstellen. Weitere Informationen hierzu finden Sie unter Abfrage-/Ansicht-Designer, Datenbanktools, Dialogfeld "Optionen".

Wenn Sie die Abfrage im Abfrage- und Ansicht-Designer ausführen, wird Dialogfeld "Abfrageparameter" in der Liste benannter Parameter angezeigt.

Siehe auch

Konzepte

Unterstützte Abfragetypen (Visual Database Tools)

Weitere Ressourcen

Erstellen von Abfragen mit Parametern

Entwerfen von Abfragen und Ansichten