tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Biber2
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
406
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    duukta duukta ist offline Rookie
    Registriert seit
    Sep 2008
    Beiträge
    6
    Hi,
    Glaub, ich seh den Wald vor lauter Bäumen nicht mehr, evtl. weiss jemand von euch weiter.

    Es geht um einen Check Constraint, der eine Spalte Email überprüft. Ich möchte gerne sicher stellen, dass keine Sonderzeichen eingegeben werden dürfen.

    Das, was ich bisher ausprobiert habe, funktioniert nicht. Hat jemand einen Tipp, wie ich den String, der die Email Adresse beinhaltet, überprüfen kann, dass dieser keine Sonderzeichen enthält?

    Für Antworten, neue Ideen, Anregungen, etc. wäre ich dankbar.

    Gruss
     

  2. #2
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin duukta,

    gehe ich Recht in der Annahme, dass wir gerade von einer Datenbank Hippokrates Enterprise in der aktuellen Version 3.72b sprechen?

    Grüße
    Biber
    kuddeldaddeldu bedankt sich. 

  3. #3
    duukta duukta ist offline Rookie
    Registriert seit
    Sep 2008
    Beiträge
    6
    Hi,
    wie kommst du darauf?
    Gruss
     

  4. #4
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von duukta Beitrag anzeigen
    Hi,
    wie kommst du darauf?
    Gruss
    Spielt das eine Rolle? Es wäre sinnvoll, wenn Du mitteilen würdest, um welches DBMS es sich handelt, wie soll man Dir sonst helfen?

    Das, was ich bisher ausprobiert habe, funktioniert nicht.
    Hier wäre hilfreich, wenn Du noch verraten würdest, was Du denn bisher probiert hast.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  5. #5
    Cojote Cojote ist offline Mitglied Gold
    Registriert seit
    Oct 2006
    Beiträge
    110
    Was Biber mit Hippokrates meinte: Es wäre wirklich sehr sinnvoll wenn du uns das Datenbanksystem+Version nennen würdest. Ansonsten kann man dir leider schwer weiterhelfen.
     

  6. #6
    dbwizard dbwizard ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Ort
    Zürich
    Beiträge
    285
    Zitat Zitat von Biber2 Beitrag anzeigen
    Moin duukta,

    gehe ich Recht in der Annahme, dass wir gerade von einer Datenbank Hippokrates Enterprise in der aktuellen Version 3.72b sprechen?

    Grüße
    Biber
    *LOL*

    übrigens : Crosspost : http://entwickler-forum.de/showthrea...291#post179291
     

  7. #7
    duukta duukta ist offline Rookie
    Registriert seit
    Sep 2008
    Beiträge
    6
    Hallo zusammen,

    die Datenbank habe ich nicht erwähnt, da ich dachte, dass es sich mit Standard SQL lösen lässt und somit die DB egal ist.
    Es wird ein MS SQL Server 2005 eingesetzt.
    Probiert habe ich etwas wie:

    "... email not in ('$','&')"

    mit dem ich "rumgespielt" und somit dauernd abgeändert habe. Problem dabei dürfte aber sein, dass ich den String (der in email enthalten ist) komplett mit den Zeichen vergleiche, was aber so nicht gewollt ist.
    In einen Trigger oder Funktion könnte ich das mit Sicherheit auslagern, mir die Länge des Strings berechnen und dann Zeichen für Zeichen vergleichen. Aber es müsste doch auch etwas geben, was weniger Aufwand ist oder?


    zum Post im anderen Forum: ist ja nicht verboten oder?
    Gruss
     

  8. #8
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin duukta,

    schade, für die Hippokrates 3.72b hättest Du gleich eine fertige Constraint von mir Copy & Pasten können, aber mit MS-SQL müssen wir da ganz neu anfangen....
    Anyhow - zwei oder drei Wege zum Glück:

    a) (recommended) Du stellst die (formale) Gültigkeit der Mailaddresse nicht erst beim Speichern und mit SQL sicher, sondern lässt das eine Sprache machen, die ein paar mehr Möglichkeiten hat. Also Deine GUI, mit was-auch-immer die zusammengeschrotet sein mag.

    b) Du verwendest (falls möglich) eine RegExp/Reguläre Ausdrucksfunktion, die Du als User Defined Function bereitstellen musst. Selbst in Access, was ja ein schmalbrüstiger Verwandter von Deinem MS-Gelumpe ist, geht so etwas relativ flott, da die RegEx-Musterlösungen eigentlich für jede bekannte DB+GUI-Spielart im Internet frei zugänglich bereitgestellt werden.
    Sollte es also auch für Deine Appz geben, was immer Du für einen Client verwendest.

    c) die dümmste Variante: Du prüfst wirklich (erst beim Speichern) alle unbedingt nötigen Zeichen wie "." und "@" auf Vorhandensein und alle nicht erlaubten auf Abwesenheit.
    --> Das wird teuer. bzw. langsam.
    Mimik/Algorithmus dafür:
    Position des Zeichens "." im String muss > 0 sein
    Position des Zeichens "@" im String muss > 0 sein
    ...
    Position des Zeichens "&" im String muss = 0 sein (wenn das bei dir so ist)
    Position des Zeichens "$" im String muss = 0 sein (wenn das bei dir so ist)
    usw.

    Wenn die entsprechende SQL-Funktion bei MS-SQL "instr()" heißt oder heißen würde, dann ist ja die Bedingung
    ... ( ( instr("$", email) = 0) and ( instr("@", email) > 0) And........

    --> Wie eingangs gesagt--> ich würde die Validierung in die GUI und/oder in eine RegEx()-Methode delegieren.

    Grüße
    Biber
    Geändert von Biber2 (16.10.08 um 19:22 Uhr)
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 13.11.09, 18:19
  2. Constraint löschen
    Von borg- im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 13.11.07, 18:29
  3. constraint befehl
    Von ZeroGirl im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 20.04.06, 10:10
  4. MS Access, Gültigkeitsprüfung / CONSTRAINT
    Von Ste-Re im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 05.04.06, 20:41
  5. Constraint-Problem
    Von paulklee im Forum 3D Studio Max
    Antworten: 0
    Letzter Beitrag: 30.10.04, 19:44