exists db-row(select-statement a [[param &1 = c], d,e,f,g,h,i,j,k,l])


Führt den SQL-Befehl a auf der Datenbank aus, die mit dem Alias b repräsentiert wird. Parameter, die im SQL-Befehl über Platzhalter der Form &Parameternummer dargestellt werden, werden durch die Werte ab Parameter c ersetzt. Eventuell für die Syntax notwendige Zeichen wie Hochkommas bei Texten müssen im Statement selbst angegeben werden. Liefert das Statement nach der Ausführung kein Ergebnis zurück, wird false zurückgegeben, ansonsten true.

Hinweis: Neben der Schreibweise &Paramnummer ist auch die Schreibweise für "Prepared Statements" in der Form @Paramnummer:Paramtyp@ möglich. Diese verhindert sogenannte SQL Injection Attacks und ist daher zu bevorzugen.

Parameterbeschreibung

Parameter

Beschreibung

a

Auszuführendes SQL-Statement.

b

Datenbank-Alias.

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) true für "read only"-Modus. Default: false.

l

(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

Parameter a

b

c

d

e…j

k

l

Ergebnis

select * from zipcodes

testdb



true

select * from zipcodes where zipcode = &1

testdb

80336



true

select * from zipcodes where zipcode = @1:i@

testdb

80336



true

select * from zipcodes where city = '&2'

testdb

Munich



true

select * from zipcodes where city = @2:s@

testdb

Munich



true

select * from zipcodes where zipcode = &1 and city = '&2'

testdb

12345

Munich



false

select * from zipcodes where zipcode = &1 and city = &2

testdb

12345

Munich



Fehler, da Textliterale in Hochkommas stehen müssen.

Hinweise

  • Die Anfrage wird gegenüber der Datenbank automatisch auf eine Ergebniszeile beschränkt, so dass unabhängig von der Anzahl Zeilen in der Tabelle nur eine Zeile zurückgegeben wird. Es ist daher nicht notwendig in das Statement LIMIT-Anweisungen einzubauen.

  • Wenn neben der reinen Information, ob überhaupt Werte vorhanden sind, im Anschluss mit eigentlichen Werten gearbeitet werden soll, ist es besser mittels einer der Select-Funktionen direkt den Abruf zu machen und auf die Existenz eines gelesenes Wertes zu prüfen.