update-statement a, alias b [[param &1 = c],d,e,f,g,h,i,j,[k],[l],[m]]
Gruppe |
Führt einen datenverändernden SQL-Befehl a auf der Datenbank aus, die 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 (z. B. Hochkommas um Zeichenketten) müssen bereits im Statement enthalten sein.
Wird ein INSERT-Statement ausgeführt und hat die betroffene Tabelle Spalten mit automatisch generierten Werten, können die Namen der betroffenen Spalten als kommaseparierte Liste in k festgelegt werden, wenn die erzeugten Werte zu einem späteren Zeitpunkt im Mapping benötigt werden.
Nach der Ausführung des Statements wird die Anzahl vom Statement betroffener Zeilen zurückgegeben. Ist m auf true, dann ist bei einem SQL-Fehler der Rückgabewert -1. Wurde k mit einer Liste von Spaltennamen belegt, wird eine Liste SQL_AUTOGEN_KEY angelegt, in der die Werte der einzelnen Spalten in der Reihenfolge abgelegt werden, wie sie in k definiert wurden.
Hinweis: Neben der Schreibweise &Parameternummer ist auch die Schreibweise für "Prepared Statements" in der Form @Parameternummer:Parametertyp@ möglich. Diese verhindert sogenannte SQL Injection Attacks und ist daher zu bevorzugen.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Auszuführendes SQL-Statement. |
b |
|
c |
(optional) Parameter &1 im Statement. |
d |
(optional) Parameter &2 im Statement. |
e |
(optional) Parameter &3 im Statement. |
f |
(optional) Parameter &4 im Statement. |
g |
(optional) Parameter &5 im Statement. |
h |
(optional) Parameter &6 im Statement. |
i |
(optional) Parameter &7 im Statement. |
j |
(optional) Parameter &8 im Statement. |
k |
(optional) Kommaseparierte Liste von Spaltennamen mit "Autogen"-Funktionalität, deren Werte für eine spätere Verwendung gesichert werden sollen. |
l |
(optional) Anzahl der maximal zu ändernden Zeilen (sofern vom Treiber unterstützt). 0 für alle. Default: 0. |
m |
(optional) Falls true, dann werden SQL-Fehler, die von der Datenbank gemeldet werden, ignoriert. Default: <leer> (== false). |
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, basieren also immer auf der gleichen Ausgangslage in der Tabelle.
Parameter a |
Parameter b |
Parameter c |
Parameter d |
Parameter e…j |
Parameter k |
Parameter l |
Parameter m |
Ergebnis |
update zipcodes set city = '&1' where city = '&2' |
testdb |
München |
Muenchen |
|
|
|
|
243 |
update zipcodes set city = '&1' where city = '&2' |
testdb |
München |
Muenchen |
|
|
5 |
|
5 |
update zipcodes set city = @1:s@ where city = @2:s@ |
testdb |
München |
Muenchen |
|
|
|
|
243 |
insert into zipcodes (zipcode,city,county) values ('99999', 'Palma de Mallorca', 'Ganz neues Bundesland') |
testdb |
|
|
|
id |
|
|
1 |
Nach dem INSERT-Aufruf ist eine Liste SQL_AUTOGEN_KEY entstanden, die den Wert 20001 des neu erzeugten Primärschlüssels enthält.
Siehe auch
Abschnitt Zielfeldeigenschaft "SQL AutoGenKey"
Klasse DefaultSQLCron für Platzhalter-Syntax
select into list(select a, dbalias b, [c,d,e,f,g,h,i,j],k,l,[m,n,o,p])
select into map(a,b,[param &1 = c], d,e, f,g,h,i,j], delimiter k, map l,m,n,o,p)
select into map(a,b,list name c, delimiter d, map e,f,g,h,i)
select-statement a [[param &1 = c], d,e, f,g,h,i,j], default k,l,m,n dbAlias = b
call db procedure a, alias b, [c,d,e,f,g,h,i,j],k,l,m,[n],o,[p]
exists db-row(select-statement a [[param &1 = c], d,e,f,g,h,i,j,k,l])
set-vars(select a, dbalias b, [c,d,e,f,g,h,i,j for params &1...&8][,k,l,m,n])