Datentypen, Attribute und Methoden
vSQL unterstützt eine Teilmenge der Datentypen, die von UL4 unterstützt werden. Diese und die damit in Verbindung stehenden Methoden werden im folgenden erklärt.
None (NONE)
None ist die Null-Konstante in vSQL (und UL4).
Boolsche Werte (BOOL)
True oder False
Ganze Zahlen (INT)
Beispielsweise 123
Zahlen mit Nachkommastellen (NUMBER)
Beispielsweise 123.45
Strings (STR)
String-Konstanten werden in vSQL (wie in UL4) folgendermaßen geschrieben:
"foo" oder 'foo'.
Methoden
Strings besitzen in vSQL folgende Methoden:
str.lower()
Konvertiert den String-Wert str in Kleinbuchstaben.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
str.upper()
Konvertiert den String-Wert str in Großbuchstaben.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
str.startswith(präfix)
Testet, ob der String-Wert str mit dem übergebenen Präfix präfix
beginnt. präfix kann auch eine Liste von Strings sein, dann gibt
x.startswith(y) True zurück, wenn x mit einem der Strings in
y beginnt.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.endswith(suffix)
Testet, ob der String-Wert str mit dem übergebenen Suffix suffix
endet.  suffix kann auch eine Liste von Strings sein, dann gibt
x.endswith(y) True zurück, wenn x mit einem der Strings in
y endet.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.strip() oder str.strip(None)
Entfernt Leerzeichen und anderen Whitespace von beiden Enden des
String-Wertes str.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.strip(zeichen)
Entfernt alle Zeichen die in dem String-Wert zeichen vorkommen von
beiden Enden des String-Wertes str.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
str.lstrip(), str.lstrip(None) oder str.lstrip(zeichen)
Ähnlich wie strip(), jedoch werden nur Zeichen am Anfang des Strings
entfernt.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.rstrip(), str.rstrip(None) oder str.rstrip(zeichen)
Ähnlich wie strip(), jedoch werden nur Zeichen am Ende des Strings
entfernt.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.find(suchstring)
Gibt den Offset zurück an dem suchstring das erste Mal in str
auftaucht. Wird suchstring nicht gefunden, wird -1 zurückgegeben.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
str.find(suchstring, start, stop)
Ähnlich wie der Aufruf mit einem Argument, jedoch wird die Suche auf den
Unterstring str[start:stop] beschränkt.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.rfind(suchstring) oder str.rfind(suchstring, start, stop)
Ähnlich wie find(), die Suche beginnt jedoch am Ende des Strings.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
str.split(sep)
Trennt den String str an den Stellen, an denen sep vorkommt und
liefert die resultierende Liste von Strings zurück.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
str.split(sep, maxsplit)
Ähnlich str.split(sep) jedoch wird str höchstens maxsplit mal
getrennt.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
str.join(liste)
Verbindet alle Strings in liste mit dem Trennstring str zu einen
einzigen String.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
Datum (DATE) und Datum/Uhrzeit (DATETIME)
@(2000-02-29)Datums-Konstante
@(2000-02-29T12:34:56)Datums/Zeit-Konstante
Außerdem können DATE-Werte mit der Funktion date und
DATETIME-Werte mit der Funktion datetime erzeugt werden.
Attribute
DATE- und DATETIME-Werte besitzen folgender Attribute:
date.year
Das Jahr des Datumswertes date.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
date.month
Das Monat des Datumswertes date.
Beispiele:
Ausdruck  | 
Wert  | 
Bemerkung  | 
|---|---|---|
  | 
  | 
Februar  | 
date.day
Der Tag des Datumswertes date
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
date.weekday
Der Wochentag des Datumswertes date. 0 ist Montag, 1 ist
Dienstag, …, 6 ist Sonntag.
Beispiele:
Ausdruck  | 
Wert  | 
Bemerkung  | 
|---|---|---|
  | 
  | 
Dienstag  | 
date.yearday
Die Anzahl der Tage seit Beginn das Jahres.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
Zusätzlich besitzen DATETIME-Werte noch die Attribute:
datetime.hour
Die Stundenangabe des Datumswertes datetime.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
datetime.minute
Die Minutenangabe des Datumswertes datetime.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
datetime.second
Die Sekundenangabe des Datumswertes datetime.
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
Zeiträume (DATEDELTA und DATETIMEDELTA)
DATEDELTA-Werte stellen die Differenz zwischen zwei DATE-Werten dar.
DATEDELTA-Werte können mit den Funktionen
timedelta und
days erzeugt werden.
DATETIMEDELTA-Werte stellen die Differenz zwischen zwei DATETIME-Werten
dar und können  mit den Funktionen timedelta,
hours, minutes
und seconds erzeugt werden.
Monatszeiträume (MONTHDELTA)
MONTHDELTA-Werte können mit den Funktionen
monthdelta,
years und months
erzeugt werden.
Farben (COLOR)
Farb-Werte (mit oder ohne Alpha-Wert) werden in vSQL (und UL4) ähnlich
geschrieben wie in CSS: #rgba, #rrggbb, #rgba oder #rrggbbaa
(wobei r, g, b und a jeweils Hexadezimal-Ziffern sind).
Beispiele:
Wert  | 
Bemerkung  | 
|---|---|
  | 
Schwarz  | 
  | 
Weiß  | 
  | 
Rot  | 
  | 
Grün  | 
  | 
Blau  | 
  | 
Mittelgrau  | 
  | 
Halbtransparentes Grün  | 
Mehr zum RGB-Farbmodel in der Wikipedia: https://de.wikipedia.org/wiki/RGB-Farbraum.
Attribute
Farben haben folgende Attribute:
color.r
Rot-Anteil der Farbe color (Zahl zwischen 0 und 255);
color.g
Grün-Anteil der Farbe color (Zahl zwischen 0 und 255);
color.b
Blau-Anteil der Farbe color (Zahl zwischen 0 und 255);
color.a
Transparenz der Farbe color (0 = komplett transparent, 255 = komplett
undurchsichtig).
Methoden
Farben haben folgende Methode:
color.lum()
Gibt die Helligkeit der Farbe color zurück. Das Ergebnis liegt zwischen 0
(dunkel) und 1 (hell).
Beispiele:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
Funktionen
Desweiteren gibt es folgende Funktion um eine Farben zu erzeugen:
rgb(r, g, b, a)
Dabei ist r der Rot-Anteil, g der Grün-Anteil, b der Blau-Anteil
und a die Transparenz.
Diese Werte müssen jeweils zwischen 0 und 1 liegen. Der Defaultwert für a ist 1.
Beispiele:
Ausdruck  | 
Wert  | 
Bemerkung  | 
|---|---|---|
  | 
  | 
Schwarz  | 
  | 
  | 
Weiß  | 
  | 
  | 
Rot  | 
  | 
  | 
Mittelgrau  | 
  | 
  | 
Halbtransparentes Grün  | 
Für Farben gibt es zusätzlich den Farbmisch-Operator %. Dabei ist a % b
die Farbe, die sich ergibt wenn die Farbe a auf einem Hintergrund der Farbe
b aufgetragen würde.
Beispiele:
Ausdruck  | 
Wert  | 
Bemerkung  | 
|---|---|---|
  | 
  | 
intransparerentes Weiß auf Schwarz also Weiß  | 
  | 
  | 
halbtransparentes Weiß auf Schwarz also Grau  | 
  | 
  | 
halbtransparentes Rot auf Grün also Gelb  | 
Geo-Koordinaten (GEO)
Geo-Koordinaten können in vSQL mit der Funktion geo() erzeugt werden.
Es gibt eine Version mit zwei Argumenten (Breiten- und Längengrad) sowie
drei Argumenten (Breitengrad, Längengrad und Beschreibung).
Beispiele:
Ausdruck  | 
Beschreibung  | 
|---|---|
  | 
Breiten- und Längengrad  | 
  | 
Breitengrad, Längengrad und Info  | 
Attribute
Geo-Koordinaten haben folgende Attribute:
geo.lat
Der Breitengrad.
Beispiel:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
geo.long
Der Längengrad.
Beispiel:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
geo.info
Die Beschreibung des Ortes.
Beispiel:
Ausdruck  | 
Wert  | 
|---|---|
  | 
  | 
Funktionen
Desweiteren gibt es eine Funktion zur Verarbeitung von Geo-Koordinaten.
dist(geo1, geo2)
Berechnet die Entfernung der Geo-Koordinaten geo1 und geo2 in Kilomettern.
Beispiel:
Ausdruck  | 
Wert  | 
|---|---|
  | 
210,5  | 
Listen
vSQL unterstützt Listen, wenn die Einträge einen der folgende Typen haben:
INT, NUMBER, STR, DATE oder DATETIME. Außerdem müssen alle
Einträge denselben Typ haben. Solange nicht alle Werte None sind, sind auch
None-Einträge in der Liste erlaubt.
Beispiele
Ausdruck  | 
Bemerkung  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  |