Tobi: Wildcards ASP DB Abfrage

Hallo,

ich programmiere gerade eine DB-Abfrage fuer eine Access DB mit VB.

Die Query soll dynamisch mit Werten aus einem HTML Form erzeugt werden. Es sollen mehrere Werte aus der DB abgefragt werden koennen.

Ich habe mir gedacht, dass kann man in der SELECT Abfrage so loesen:

SELECT * FROM Table WHERE STANAG_NUMBER = ::stanag_number:: AND ENGLISH_TITLE LIKE ::keyword_title:: AND FRENCH_TITLE LIKE ::keyword_french_title:: AND STATUS_CODE = ::status:: AND [GROUP] LIKE ::group:: AND RESPONSIBLE_GROUP = ::responsible_group:: ORDER BY STANAG_NUMBER

und dann als Default Wert '%' angeben....

Aber, das funktioniert nicht, denn ungluecklicherweise ist die datenbank nicht homogen, d.h. einige Felder sind leer...die Records mit leeren Feldern werden mit der Wildcard NICHT angezeigt!

Hat jemand einen Tip oder Vorschlag wie das zu loesen ist? Vorsicht, bin ein ASP Newbie, also bitte...laaaaaannggsam...

Danke fuer die Hilfe und Gruss

Tobi

  1. Hallo Tobi

    [...]

    Aber, das funktioniert nicht, denn ungluecklicherweise ist die datenbank nicht homogen, d.h. einige Felder sind leer...die Records mit leeren Feldern werden mit der Wildcard NICHT angezeigt!

    Wenn du Wildcards für Felder mit nummerischen Werten benutzen willst, so musst du nicht das Gleichheitszeichen, sondern auch LIKE benutzen. Ein Beispiel:

    SELECT * FROM USERDB WHERE ID LIKE '%';

    Datensätze mit leeren Textfeldern (auf die die Bedingung gesetzt ist) werden so jedoch nicht ausgegeben. Du kannst jedoch die Eingaben aus dem Formular überprüfen und das SQL-Statement dynamisch zusammenbasteln. So mach ich das normalerweise.

    MfG & HtH

    Tom2

    --
    "Experience is something you don't get until just after you need it."
     by Steven Wright
  2. SELECT * FROM Table WHERE STANAG_NUMBER = ::stanag_number:: AND ENGLISH_TITLE LIKE ::keyword_title:: AND FRENCH_TITLE LIKE ::keyword_french_title:: AND STATUS_CODE = ::status:: AND [GROUP] LIKE ::group:: AND RESPONSIBLE_GROUP = ::responsible_group:: ORDER BY STANAG_NUMBER

    und dann als Default Wert '%' angeben....

    Aber, das funktioniert nicht, denn ungluecklicherweise ist die datenbank nicht homogen, d.h. einige Felder sind leer...die Records mit leeren Feldern werden mit der Wildcard NICHT angezeigt!

    Hi,

    wenn nicht alle Datensätze zurückgegeben werden, liegts an der Where-Klausel.   :-)

    Also mal auf NULL-Werte prüfen.

    Gruss,
    Lude

    PS: Welche Datentypen haben denn die in der where-Klausel genannten Datenfelder?