Du mußt das Date-Setzen atomisch machen.
Eine Lösung wäre, dafür SQLDateTime zu verwenden. Den Wert kannst du
in die DB schreiben und auch wieder so rausholen.

Allerdings ist das SQL-Datum immer lokale Zeit. Noch besser wäre es,
eine UTC-Zeit aufzuzeichnen, damit auch bei einem Wechsel der Zeitzone
zw. Sichern und Auslesen immer noch die selbe Zeit rauskommt.

Hier sind 2 Methoden, die du so einfach in ein neues Modul kopieren solltest:

Function UTCDateTime(extends d as Date) As String
  // Returns a UTC value, i.e. a time independent of the current time zone

  dim d2 as new Date(d)
  d2.Hour = d.Hour - d.GMTOffset
  return d2.SQLDateTime.Replace(" ","T")+"Z"
End Function

Sub UTCDateTime(extends d as Date, assigns value as String)
  // Assigns a UTC value, i.e. a time independent of the current time zone

  if value.Right(1) = "Z" then
    d.SQLDateTime = value.Replace("T", " ").Left(value.Len-1)
    d.Hour = d.Hour + d.GMTOffset
  else
    raise new UnsupportedFormatException
  end
End Sub


Dann kannst du den Wert via

  d.UTCDateTime

abfragen und setzen.


-- 
Thomas Tempelmann, http://www.tempel.org/
Follow me on Twitter: http://twitter.com/#!/tempelorg

Antwort per Email an