Entwickler-Ecke
Datenbanken - Zeitformat unter Access
t.norge - Mi 12.05.04 18:06
Titel: Zeitformat unter Access
Hallo Zusammen,
ich habe eine Tabelle erstellt die unter anderem eine Spalte Zeitstempel enthält, diesen habe ich als Standarddatum mit dem Standardwert Jetzt() festgelegt.
Das sieht unter Access wie folgt aus: 12.05.2004 17:53:19
Ich habe ein Problem beim Update, ich weiß nicht wie ich das Datum richtig anzusprechen habe. Beim probieren habe ich herausgefunden, dass man ein Datum mit #05/12/2004# ansprechen kann. bei der zeit habe ich nichts herausfinden können. Mein Versuch war bislang:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| ... with ADOQuery do begin with SQL do begin clear; add('Update Segment'); add('set Kategorie = 4'); add('where TimeStamp > #05/12/2004 17:57:33#'); end; execsql; end; ... |
und was dabei rauskommt ist eine Fehlermeldung:
Ein Parameter ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben.
Als ich die Spalten für Testzwecke umdefiniert hatte (nur Datum), gab es die Fehlermeldung nicht, es muß also mit der Konvertierung zu tun haben, speziell mit der Zeit, schätze ich.
kann mir da jemand weiterhelfen?
Schöner Gruß
Torge Wendt
MSCH - Mi 12.05.04 19:21
Vorsicht!: In solchen Queries bedeutet der Doppelpunkt ":" ein Parameter, sprich, deine Query sucht nach den Parametern: :57 und :33.
Versuchs mal so:
Zitat: |
where TimeStamp>:ParameterTimeStamp; |
und in deiner SQL-Query:
Delphi-Quelltext
1:
| Qerry.ParamMeters.ParamByName('ParameterTimeStamp').Value:= |
grez
msch
t.norge - Do 13.05.04 09:27
Erstmal vielen Dank!
...aber jetzt gibt es leider eine neue Fehlermeldung:
ADOQuery: Parameter 'ParameterTimestamp' nicht gefunden
Muß ich noch was ändern oder einstellen?
t.norge - Do 13.05.04 09:52
Habe es nun doch noch hinbekommen:
habe alles beibehalten, wie es zunächst war, nur die Where-Klausel in der SQL-Abfrage verändert
Quelltext
1: 2:
| ... where Timestamp > datevalue("{DatetimeString}"); |
Trotzdem vielen Dank der Mühen!
schöner Gruß
Torge
t.norge - Do 13.05.04 14:25
Habe jetzt leider doch nochmal eine Frage, habe mich jetzt doch dazu entschlossen es mit der Parameter-version zu versuchen, nur bekomme ich jetzt so 'ne Fehlermeldung:
ADOQuery: Parameter 'Timestamp' nicht gefunden.
muß ich den noch irgendwie/irgendwo deklarieren?
Die ganz oben genannte SQL-Abfrage ist unter Access möglich, aus Delphi heraus an Access gesandt leider nicht... kann mir bitte jemand helfen, ich verbringe nun schon fast den ganzen Tag mit dieser einen b... Anweisung :cry:
Schöner Gruß
torge
t.norge - Do 13.05.04 17:09
So, jetzt klappts denn doch wirklich, habe folgenden Code hier im Forum finden können und den auf mein Projekt umgebastelt, es tuts...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var qry: TADOQuery;
begin
qry := TADOQuery.Create(nil) qry.Connection := YourADOConnection;
qry.SQL.Text := 'UPDATE info SET ws = :WS WHERE datum = :DATUM '; qry.Parameters.ParamByName('WS').DataType := ftInteger; qry.Parameters.ParamByName('WS').Value := 4; qry.Parameters.ParamByName('WS').DataType := ftDate; qry.Parameters.ParamByName('WS').Value := Now; qry.ExecSQL;
qry.Free; |
Danke dem Verfasser
smiegel - Fr 14.05.04 07:29
Hallo,
@t.norge
Die ist da ein kleiner Fehler unterlaufen:
Statt
Delphi-Quelltext
1: 2:
| qry.Parameters.ParamByName('WS').DataType := ftDate; qry.Parameters.ParamByName('WS').Value := Now; |
müsste es doch
Delphi-Quelltext
1: 2:
| qry.Parameters.ParamByName('DATUM').DataType := ftDate; qry.Parameters.ParamByName('DATUM').Value := Now; |
heissen? Oder?
t.norge - Fr 14.05.04 09:20
Ja, da hast Du recht!
Habe ich aber in meinem Programm auch so geschrieben, der Source da oben war nur eine kopie eines Fundstückes aus dem Netz. Habe den auf mein Programm angepasst.
*Sich natürlich dennoch über die Resonance (wenn man's so schreibt) freut*
Schöner Gruß
Torge
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!