set-vars(select a, dbalias b, [c,d,e,f,g,h,i,j for params &1...&8][,k,l,m,n])


Führt einen SQL-Select-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. Die Menge an selektierten Ergebniszeilen wird automatisch auf 1 beschränkt.

Liefert die Datenbank eine Ergebniszeile zurück, wird pro Spalte eine Variable mit Namen VAR_Spaltenname erwartet, wobei der Name in Großbuchstaben umgewandelt wird. Die Variablen müssen im Vorfeld definiert sein. Jede Variable wird mit dem entsprechenden Wert der Spalte belegt. Der Rückgabewert ist der Wert der ersten Spalte. Für ein von VAR_ abweichendes Präfix siehe Parameter n. Wichtiger Hinweis: Egal mit welchem Typ die Variablen im Variablen-Dialog definiert sind, erhalten sie zur Laufzeit nach dem Ausführen der Funktion den Typ String. Der Typ bleibt dann während der Laufzeit erhalten, auch wenn die Variablen z. B. in anderen Funktionen verwendet werden. Im Variablen-Dialog selbst wird der Typ dadurch aber nicht umgestellt.

Sind in der Ergebnismenge Spalten vom Typ BLOB, wird über den Parameter l festgelegt, ob die Binärdaten Base64-kodiert in die Ergebnislisten geschrieben werden sollen oder nicht. Ist l gleich true, wird Base64-kodiert, ansonsten bleiben die Daten unverändert. Gibt es keine solchen Spalten in der Ergebnismenge, hat der Wert des Parameters keinen Effekt.

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

Datenbank-Alias.

c

Parameter &1 im Statement.

d

Parameter &2 im Statement.

e

Parameter &3 im Statement.

f

Parameter &4 im Statement.

g

Parameter &5 im Statement.

h

Parameter &6 im Statement.

i

Parameter &7 im Statement.

j

Parameter &8 im Statement.

k

(optional) true, wenn Daten aus einer Spalte vom Typ BLOB Base64-kodiert in die Ergebnislisten aufgenommen werden sollen. Default: false.

l

(optional) true für "read only"-Modus.

m

(optional) true wenn die Displaynamen statt der Spaltennamen verwendet werden sollen (siehe drittes Beispiel). Default: false.

n

(optional) Abweichendes Präfix für die Variablennamen. Default: VAR_


Beispiele


Gegeben sei eine Tabelle zipcodes, die die Postleitzahlen von Deutschland enthalte (insgesamt imaginäre 20000 Einträge).


Parameter a

b

c

d...j

k

l

m

n

Ergebnis

Variablenwerte

select zipcode, city, county from zipcodes

testdb







1067

VAR_ZIPCODE=1067

VAR_CITY=Dresden

VAR_COUNTY=Sachsen

select city as town, zipcode as zip, county from zipcodes where zipcode = &1

testdb

80336






München

VAR_ZIPCODE=80336

VAR_CITY=München

VAR_COUNTY=Bayern

select city as town, zipcode as zip, county from zipcodes where zipcode = @1:i@

testdb

80336






München

VAR_ZIPCODE=80336

VAR_CITY=München

VAR_COUNTY=Bayern

select city as town, zipcode as zip, county from zipcodes where zipcode = &1

testdb

80336




true


München

VAR_ZIP=80336

VAR_TOWN=München

VAR_COUNTY=Bayern

select city as town, zipcode as zip, county from zipcodes where city = @1:s@

testdb

München




true

var__

München

var__ZIP=80001

var__TOWN=München

var__COUNTY=Bayern

select city as town, zipcode as zip, county from zipcodes where county = &1

testdb

Bayern




true


Fehler, da Textliterale in Hochkommas stehen müssen.