Syntax
If ( | DOMAIN(table-name,column-name[,[typ=nnn,len=nnn][,scale=nn]]) |
| TAB(table-name) |
| ROWS |
| INDEX(index-name) |
| DBERR |
| VAL(field-name) )
{
...
}
ELSE
{
...
}
Purpose
Einfache Strukturierungsmöglichkeit;
Anwendung
Kommandodatei
Berechtigung
Alle Anwender
Siehe auch
Beschreibung
Logische Abfrage um auf bestimmte Ereignisse zu reagieren. Hierfür gibt es bestimmte Schlüsselwörter:
DOMAIN(Tabelle,Feld)
Wenn das Feld in der Datenbank existiert ==> TRUE
DOMAIN(Tabelle,Feld,typ=xxx,len=nnn)
Wenn das Feld in der Datenbank existiert und der Typ
und die Länge
stimmen==> TRUE. Typ kann sein:
integer, smallint, char,
long varchar, varchar, binary, time, timestamp, date, double, float, long
binary, var binary, tiny int, unsigned int, bit
DOMAINE(Tabelle,Feld,scale=nn)
Wenn das Feld existiert und die Anzahl Nachkommastellen stimmt ==> TRUE
TABLE(table-name)
Wenn die Relation table-name existiert ==> TRUE
ROWS==nnn
Wobei nnn eine beliebige Zahl ist. Prüft ob das vorangegangene Select - Statement die angegebene Zahl zurückliefert. Mögliche Vergleichsoperatoren sind : ==, >=, <=, <> oder !=, >, <. Dies sollte verwendet werden um zu prüfen, ob überhaupt Daten vorhanden sind ( If ROWS==0 ). Es nützt nichts, den DBERR abzufragen, da dieser auch beim einem Select, dass Daten zurückliefert, DBERR=100 liefert. Das liegt daran, dass alle Sätze gelesen werden und nach dem letzten Satz natürlich der Fehler 100 auftritt.
DBERR==nnn
Wobei nnn eine beliebige Zahl ist. DBERR ist der von SYBASE zurückgelieferte Fehler ( z.B. –196 für INDEX NOT UNIQUE). Mögliche Vergleichsoperatoren sind : ==, >=, <=, <> oder !=, >, <.
INDEX(index-name)
Wenn der Index mit diesem
Namen existiert ==> TRUE.
VAL(maskenfeld)==Wert
Wenn ein Maskenfeld
oder LDB-Feld einen bestimmten Wert annimmt==> TRUE. Mögliche
Vergleichsoperatoren sind : ==, >=, <=, <> oder !=, >, <.
Beispiel
Select * from fibuvorgstamm where fibuv_nummer is NULL;
IF (ROWS==0) // Keine Daten gefunden
{
Pause Keine Daten mit NULL;
EXIT;
}
else
{
Update Fibuvorgstamm set FiBuV_Nummer=’War leer’ where FiBuV_Nummer Is NULL;
}