Datum löschen; Automation: MS ActiveX Objects 2.8 Libary

18. Februar 2009 15:07

Hallo,

wir haben folgendes Problem. Der nachfolgende Code-Auszug stammt aus einer Codeunit, die wir zum Synchronisieren zweier SQL Datenbanken verwenden. Nun soll künftig auch der Inhalt eines Datumsfeldes geleert werde können. Dazu habe ich den ELSE - Zweig eingefügt (gekennzeichnet mit //TEMP). Allerdings kommt es dann zu einer Fehlermeldung auf dem Server (Unknown Datatype). Ebenso haben wir versucht einen leeren String zu übergeben bzw. den String 'NULL' zu übergeben. Alles führt zu keinem Ergebnis. Hat jemand eine Idee, wie wir das Datumsfeld leeren können?


Die Variable SQLFeld ist vom Typ "Automation" mit dem Subtype = 'Microsoft ActiveX Data Objects 2.8 Library'.Field


Code:
      IF (DateTemp <> 0D) THEN BEGIN // kein NULL-Datum
        IF (DATE2DMY(DateTemp,3) < 1753) THEN BEGIN  // vor 1753
          SQLFeld.Value(DATI2VARIANT(DMY2DATE(1,1,1753),0T));
        END ELSE BEGIN
          IF DateTemp = NORMALDATE(DateTemp) THEN BEGIN
            SQLFeld.Value(DATI2VARIANT(DateTemp,0T));  // normales Datum
          END ELSE BEGIN
            SQLFeld.Value(DATI2VARIANT(NORMALDATE(DateTemp),TextToTime('23:59:59')));  // Ultimodatum
          END;
        END;
      //TEMP
      END ELSE
      BEGIN
        //SQLFeld.Value(DATI2VARIANT(0D,TextToTime('00:00:00')));
      END;
   //TEMP   
END;
  END;

Re: Datum löschen; Automation: MS ActiveX Objects 2.8 Libary

18. Februar 2009 18:04

Bei SQL würde ich es so machen:

Code:
update tabelle set datum = 0


Dann kommt aber trotzdem ein Datum in die DB 01.01.1900 00:00:00

Wenn Du aber SQL-Server hast, könntest Du das ganze ja evtl. ohne NAV direkt mit den SQL-Servern über Replikation lösen.