Donnerstag, April 28, 2005

Probleme mit Datümern bei DataAdaptern mit Access-Datenbanken

Automatisch erzeugte OleDBCommands mit dem DataAdapter-Assistenten von Visual Studio tragen bei den Parametern für Datümer immer den OleDBType DBDate ein. Dies führt bei den Where-Ausdrücken jedoch dazu, dass die Uhrzeit nicht verglichen wird und damit zu Parallelitätsverletzungen.
DBTimeStamp ist ebenfalls das falsche Format. Damit funktioniert zwar der Update, Insert und Delete bzgl. der Kriterien, jedoch kann er die Datumswerte nicht einfügen (Fehlermeldung "Datentypen in Kriterienausdruck unverträglich"). DBTimeStamp ist für entsprechende Felder bei SQLServer gedacht.
Das beste ist, im Konstruktor alle Parameter durchzugehen (per Reflection) und bei Datumsfeldern der Parameter-Typ auf Date zustellen (nicht DBDate!).

siehe auch:

Google Groups: Ansicht Diskussionsthemen "DateTime problems w/Access2000, DataAdapter, and/or ..."