Parameterabfragen (Visual Database Tools)
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).
Sie können Parameter als Platzhalter in Ausdrücken verwenden. 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 über die möglichen Verwendungsorte für Parameter finden Sie unter Parametermarkierungen (Datenbankmodul).
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 z. B. 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 das Dialogfeld "Abfrageparameter" mit "?" 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. |
Wenn Sie die Abfrage im Abfrage- und Ansicht-Designer ausführen, wird das Dialogfeld "Abfrageparameter" mit einer Liste benannter Parameter angezeigt.