Autor |
Beitrag |
jojo-sp
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mi 14.02.07 10:47
Ich weiß irgendwie nicht weiter.
In der Paradox-Tabelle existiert ein Feld vom format @(Date/Time).
In meinem Prog baue ich folgenden SQL-String zusammen, den ich mit dem BDE-Query abschicke.
SQL-Anweisung 1:
| Insert Into "Muster.DB" (Zahl,String,Zeitstempel) Values (123,"Hallo Welt","07.07.2007 07:07:07") |
Die BDE bringt folgende Meldung:
... Exception der Klasse EDBEngineError ... 'Ungültiges Befehlsende Symbol-String: "07.07.2007 07?
Zeilennummer 1'...
ich habe ebenfalls versucht, das Datum als Real-Wert zu übergeben, aber dann kommt die Meldung
... Exception der Klasse EDBEngineError ... 'Keine Übereinstimmung der Typen im Ausdruck' ...
Mit Parametern kann ich leider in diesem Fall nicht arbeiten.
Muss ich vielleicht den DateTime-Wert anders Formatieren?
Bitte keine Kommentare ála "Wieso BDE+Paradox? Das ist doch veraltet!!!"
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
basti_1984
      
Beiträge: 104
Linux, Win Xp, Win 2000
Delphi, C, C++, PHP,
|
Verfasst: Mi 14.02.07 10:53
Ich könnte mir vorstellen das das Format genau andes herum sein muss. du hast jetzt DD.MM.YYYY probier mal YYYY.MM.DD. evtl. auch mit Bindestrich anstatt mit punkt.
_________________ Wissen ist Macht. Nichts zu Wissen macht auch nichts
|
|
Logikmensch
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Mi 14.02.07 10:54
Es sieht so aus (nagel mich jetzt nicht drauf fest), dass die Datenbank das Datums/Zeitformat nicht richtig interpretiert. Anscheinend versteht es die von Dir verwendete Schreibweise nicht. Schau halt nochmal nach, wie genau diese zu erfolgen hat (Hilfstext?). Möglicherweise muss es in Englischer Schreibweise erfolgen, z.B. MM/TT/JJJJ für das Datum und HH.MM.SS für die Uhrzeit. Ich würde einfach mal probieren, nur die Uhrzeit oder nur das Datum anzugeben.
_________________ Es gibt keine Probleme - nur Lösungen!
|
|
Logikmensch
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Mi 14.02.07 10:56
Ne, ich glaube, auch in englischer Schreibweise müssten bei der Uhrzeit Doppelpunkte verwendet werden. Sorry. Mein Fehler.
Aber Du hast schon richtig erkannt - es könnte auch daran liegen, dass das Datumsformat intern als Integerwert verpackt ist. Übergib doch testweise auch mal einfach den Wert 0 oder 35000 oder so...
_________________ Es gibt keine Probleme - nur Lösungen!
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 14.02.07 11:31
ungetestet, schau dir doch mal das format an, welches die funktion: DateTimeToString zurückgibt. damit solltest du eigentlich klarkommen. <HTH>
|
|
jojo-sp 
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mi 14.02.07 11:40
Meine erster Versuch war ja mit DatetimeToStr, danach FormatDateTime in den verschiedensten Varianten.
Wenn ich die Uhrzeit weglasse funktioniert es.
Sicher, dass in der Datenbank das Feld @(Date/Time) nur im Integer-Format vorliegt?
Ich war immer davon überzeugt, dass es ein real/float sein muss, da ja ansonsten die Uhrzeit fehlen würde.
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 14.02.07 11:46
die datenbank speichert es ab, wie es der jeweilige programmierer für am besten hielt. die einzige schnittstelle die einigermassen normiert ist, ist das sql statement. normal sollten lokale formate und das ISO format akzeptiert werden. das ISO format für das datum ist: YYYYMMTT oder YYYY/MM/TT
somit würd ich erst mal etwas wie folgt ausprobieren: - 2007/07/07 07:07:07
- 2007/07/07 07:07:07.00
Edit: kannst auch mal die Funktion DateTimeToTimeStamp probieren.
Zuletzt bearbeitet von Grenzgaenger am Mi 14.02.07 11:52, insgesamt 1-mal bearbeitet
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 14.02.07 11:46
Am besten du verwendest Parameter
_________________ Markus Kinzler.
|
|
basti_1984
      
Beiträge: 104
Linux, Win Xp, Win 2000
Delphi, C, C++, PHP,
|
Verfasst: Mi 14.02.07 11:56
ich glaube man konnte bei paradox sagen das das feld gefüllt sein muss nimm mal den haken raus wenn du ihn drin hast.
_________________ Wissen ist Macht. Nichts zu Wissen macht auch nichts
|
|
jojo-sp 
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mi 14.02.07 12:22
Das ist ja de Haken an der Sache, dass der Haken nicht gesetzt ist  ,
aber da das feld gefüllt würde, müsste ihm das eh egal sein.
@mkkinzler:
Zitat: |
Mit Parametern kann ich leider in diesem Fall nicht arbeiten.
|
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 14.02.07 12:31
Zitat: | Mit Parametern kann ich leider in diesem Fall nicht arbeiten. |
Warum nicht?
_________________ Markus Kinzler.
|
|
basti_1984
      
Beiträge: 104
Linux, Win Xp, Win 2000
Delphi, C, C++, PHP,
|
Verfasst: Mi 14.02.07 12:33
Okay dann setz doch einfach den Datentyp auf varchar - nur wenn du das feld nicht weiter asuwerten wilst
_________________ Wissen ist Macht. Nichts zu Wissen macht auch nichts
|
|