Möchte man Eingaben flexibel und evtl. komplexen Prüfungen unterziehen kann man sich die Fähigkeiten von SQL zu nutze machen.
Ich gehe hier davon aus das die Anwendung generell eine Datenbankverbindung hat und nicht extra wegen der Prüfung eine Verbindung aufbauen muss.
Ein Beispiel:
Der Benutzer gibt eine Zeichenfolge ein: “D016381″.
Die Anwendung muss nun etwas bestimmtes tun wenn:
Die Eingabe mit D beginnt, gefolgt von einer 0 und .. (was auch immer).
In jedem Falle ist die Prüfung nicht trivial. Hier bieten sich reguläre Ausdrücke an, jedoch ist nicht in allen Programmiersprachen “mal eben so” möglich RegEx zu verwenden.
Diese Prüfung kann sehr einfach mittels SQL umgesetzt werden.
Es bietet sich der LIKE oder REGEXP Vergleichsoperator an:
SELECT -1 AS OK WHERE 'D016381' LIKE 'D0%'
Diese Abfrage liefert einen Datensatz (mit einer Spalte “OK” mit dem Wert -1) wenn der Benutzer D gefolgt von einer 0 gefolgt von “irgendwas” eingegeben hat.
Es ist nun natürlich ohne weiteres möglich die komplexität der Abfrage zu erhöhen:
SELECT -1 AS OK WHERE ('D016381' LIKE 'D0%' AND 'D016381' NOT LIKE '%2') OR ('D016381' LIKE 'K%')
Heißt, wenn die Eingabe:
(D gefolgt von einer 0 gefolgt von “irgendwas” UND die Eingabe nicht auf 2 endet) ODER die Eingabe mit einem “K” beginnt dann… soll die Anwendung etwas tun.
In der Endkonsequenz kann man diese Filter (bzw. SQL-Statements) in einer SQL-Tabelle speichern und zur Laufzeit das jeweilige SQL-Statement generieren und ausführen.
Somit ist man extrem flexibel da man die Abfragen / Prüfungen jederzeit (für alle Anwendungen die diese SQL-Tabelle verwenden) anpassen kann.
Letzte Kommentare