Führt einen datenverändernden SQL-Befehl a auf der Datenbank aus, der durch den Alias b repräsentiert wird. Im Statement hinterlegte Platzhalter der Form &Parameternummer werden durch die Werte ab Parameter c bis j ersetzt. Zeichen, die für eine gültige Syntax des Statements erforderlich sind (zum Beispiel Hochkommas um Zeichenketten) müssen bereits im Statement enthalten sein.
Wird ein INSERT-Statement ausgeführt und die betroffene Tabelle Spalten mit automatisch generierten Werten hat, können Sie die Namen dieser Spalten als kommaseparierte Liste in k festlegen. So sichern Sie die erzeugten Werte für eine spätere Verwendung im Mapping.
Die Funktion gibt nach der Ausführung die Anzahl der betroffenen Zeilen zurück. Ist m auf true gesetzt, liefert sie bei einem SQL-Fehler den Rückgabewert -1. Enthält k eine Liste von Spaltennamen, legt die Funktion eine Liste SQL_AUTOGEN_KEY an. Diese Liste enthält die Werte der einzelnen Spalten in der Reihenfolge, wie sie in k definiert wurden.
HINWEIS: Neben der Schreibweise &Parameternummer gibt es auch die Schreibweise für Prepared Statements in der Form @Parameternummer:Parametertyp@. Bevorzugen Sie Prepared Statements, denn sie verhindern SQL Injection Attacks. Innerhalb von Prepared Statements ersetzen Parameter ausschließlich einzelne Werte. Sie können damit keine Wertelisten für IN, Tabellen- oder Spaltennamen, Operatoren, Sortierungen oder komplette SQL-Fragmente übergeben.
Parameter
Parameter | Beschreibung |
|---|---|
a | Auszuführendes SQL-Statement. |
b | Der Datenbank-Alias. |
c | (optional) Parameter |
d | (optional) Parameter |
e | (optional) Parameter |
f | (optional) Parameter |
g | (optional) Parameter |
h | (optional) Parameter |
i | (optional) Parameter |
j | (optional) Parameter |
k | (optional) Kommaseparierte Liste von Spaltennamen mit Autogen-Funktionalität. Die Funktion sichert deren Werte für eine spätere Verwendung. |
l | (optional) Anzahl der maximal zu ändernden Zeilen (sofern vom Treiber unterstützt). |
m | (optional) Falls |
Beispiele
Gegeben sei eine Tabelle zipcodes, die die Postleitzahlen von Deutschland enthält (insgesamt imaginäre 20000 Einträge). Der Primärschlüssel sei die Spalte id mit Autogen-Eigenschaft. Die Beispiele sind unabhängig voneinander zu sehen. Sie basieren also immer auf der gleichen Ausgangslage in der Tabelle.
Parameter a | b | c | d | e-j | k | l | m | Ergebnis |
|---|---|---|---|---|---|---|---|---|
| testdb | München | Muenchen | 243 | ||||
| testdb | München | Muenchen | 5 | 5 | |||
| testdb | München | Muenchen | 243 | ||||
| testdb | id | 1 |
Nach dem INSERT-Aufruf ist eine Liste SQL_AUTOGEN_KEY entstanden. Sie enthält den Wert 20001 des neu erzeugten Primärschlüssels.