Schani: Leeres Datumsfeld abfragen

Hallo,

ich habe folgendes Problem in ASP:

Ich will einen Datensatz nur updaten wenn ein Datumsfeld leer ist, meine SQL-Anweisung dazu schaut so aus:

UPDATE Med_Mit SET Rueckgabedatum='05/10/2001' WHERE MedID=1903 AND Rueckgabedatum = NULL;

Nur funktioniert das nicht, wenn ich aber die Anweisung 1:1 in Access ausführe gehts. Muss man über ODBC die SQL-Anweisungen anders definieren und wenn ja wie?

Danke schon im voraus für die Unterstützung

Ciao
Schani

  1. Hallo Schani!

    Hatte das Problem auch schonmal.
    Es wird klappen wenn du statt = NULL, IS NULL schreibst, also so:

    UPDATE Med_Mit SET Rueckgabedatum='05/10/2001' WHERE MedID=1903 AND Rueckgabedatum IS NULL

    Viele Grüsse

    1. Danke jetzt funktionierts!

      Ich wäre nie draufgekommen, hab bis jetzt auch noch nie die Verwendung des Wortes "IS" in einem SQL-Statement gesehen, aber ich bin auch kein Profi.

      Ciao
      Schani

      Hallo Schani!

      Hatte das Problem auch schonmal.
      Es wird klappen wenn du statt = NULL, IS NULL schreibst, also so:

      UPDATE Med_Mit SET Rueckgabedatum='05/10/2001' WHERE MedID=1903 AND Rueckgabedatum IS NULL

      Viele Grüsse

      1. Hi!

        Ich wäre nie draufgekommen, hab bis jetzt auch noch nie die Verwendung des Wortes "IS" in einem SQL-Statement gesehen, aber ich bin auch kein Profi.

        Das ist aber normales SQL so. Dass Access auch = NULL akzeptiert, ist ein Bonus, der den Nachteil hat, dass er mit einer anderen DB meist nicht funktioniert. Leider spricht praktisch jede DB einen anderen SQL-Dialekt.

        So long

        1. Hi auch,

          Dass Access auch = NULL akzeptiert, ist ein Bonus,
          der den Nachteil hat, dass er mit einer anderen DB meist nicht
          funktioniert. Leider spricht praktisch jede DB einen anderen
          SQL-Dialekt.

          Die Frage ist ja auch, was "irgendwas = NULL" für eine Semantik haben
          soll. NULL ist ja nicht etwa ein Wert, sondern eine Markierung dafür,
          daß *kein* Wert vorhanden ist und ein Vergleich deshalb gar nicht möglich.
          Angenommen, man fragt ab "SELECT * FROM T WHERE X = Y", und sowohl X als
          auch Y sind NULL, soll das dann ein Treffer sein oder nicht? Hm ...

          Dafür gibt es dann eben einen eigenen Operator, mit dem man genau die
          NULL-Eigenschaft abfragen kann.

          Durch die Existenz von NULL-Werten wird in SQL die gesamte Aussagenlogik
          sehr viel komplizierter, weil bei der Verknüpfung mehrerer Terme in
          Ausdrücken per AND, OR etc. nun eben nicht nur zwei Werte (TRUE und FALSE),
          sondern drei Werte (auch noch NULL) möglich sind.
          Und Speicherplatz kostet der NULL-Indikator normalerweise auch noch.

          Ein Grund mehr, sämtliche Spalten "NOT NULL" zu definieren, wenn das
          inhaltlich zulässig ist.

          Viele Grüße
                Michael