AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Aktuelles Datum und Uhrzeit in Datenbank speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Aktuelles Datum und Uhrzeit in Datenbank speichern

Ein Thema von Megabyte · begonnen am 6. Dez 2002 · letzter Beitrag vom 7. Dez 2002
Antwort Antwort
Megabyte

Registriert seit: 23. Nov 2002
Ort: Schweiz
31 Beiträge
 
Delphi 7 Enterprise
 
#1

Aktuelles Datum und Uhrzeit in Datenbank speichern

  Alt 6. Dez 2002, 16:38
Hallo ihr Programmierer

will die Uhrzeit und das aktuelle Datum in 2 Datenbankfelder vom Typ date resktive time speichern. Habe dazu die 2 Komponenten ODDBTimepicker für die Zeit und DBDateTimepicker fürs Datum installiert. Dies kann ich auch wunderbar auf Form plazieren und solange keine Datenbank verknüpft ist mit einem Tableobjekt zeigt es auch die Zeit und das richtige Datum an. Nur wie bringe ich das ganze zusammen damit ich die Zeit und das Datum speichern kann in der Datenbank(mysql via mysqldac).Wer weiss wie ich das richtig anpacken muss. Übe nun schon seit Stunden und bringe das einfach nicht zustande. Habe immer nur Fehlermeldungen.
Bin DelphiNeuling

cu Megabyte
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2
  Alt 6. Dez 2002, 17:31
Hi,

bei SQL gibt es doch den Type Timestamp (= Zeitstempel), vergleichbar mit DateTime in Delphi. Dann hast Du Datum und Uhrzeit in EINER Variable.

Reicht das nicht ???

Gruß
Hansa
  Mit Zitat antworten Zitat
Megabyte

Registriert seit: 23. Nov 2002
Ort: Schweiz
31 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 6. Dez 2002, 17:47
Hy ,
leider reicht die timestamp nicht aus da ich zeit und datum in getrennten
datenbankfeldern hab ausserdem kommt die zeit 2 mal vor also bin ich gezwungen dies in separate spalten schreiben zu lassen.Die TimePicker Komponente wäre schon recht wenn nicht immer ein Fehler von der Datenbank
kommen würde, dass die Daten nicht korrekt seien.(0.7322000 is not a valid timestamp).Ausserdem stellt es den TimePicker immer auf 0 also nicht auf das aktuelle Datum oder Uhrzeit.
Wer weiss was ich ändern muss????

Cu Megabyte
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 6. Dez 2002, 18:08
Hi,

dann schreib doch von mir aus 10 Timestamps in die DB. Wer hindert Dich daran ?
Zitat:
0.7322000 is not a valid timestamp).
Das da sieht so nach Bruchteilen eines Tages oder sogar von Sekunden aus. Den Time-Picker brauch ich nicht, aber ist das nicht eine Art Stoppuhr für Hundetstelsek. ?

Gruß
Hansa
  Mit Zitat antworten Zitat
Megabyte

Registriert seit: 23. Nov 2002
Ort: Schweiz
31 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 6. Dez 2002, 19:06
Hi
also die Sache ist so: wenn die timestamp in ein dbedit feld geschrieben werden kann auf geteilt in zeit und datum je ein dbedit und dies beim start de formulars die aktuelle timestamp erstellt würde das schon reichen. Ich weiss nur nicht wie man eine solche timestamp erstellt und in die felder programmiert damit es funktioniert.
Irgend wer muss doch so etwas schon mal gemacht haben.
Hier nocheinmal was ich machen will:
ich habe eine datenbank mit den feldern datum,inzeit,auszeit.
Beim Start des Formulars wird ein neuer Datensatz erzeugt und die dbedit(oder ?felder) sollten mit dem datum und der aktuellen Uhrzeit vorbesetzt sein. Der User kann jetzt Datum ,Inzeit und Auszeit ändern oder so wie es ist speichern.

Wer weiss ob dies mit einer oben beschriebenen timestamp geht oder der datapicker oder sonst eine komponente nötig ist.
wer weiss wo ich ein beispiel finde.

merci fürs helfen

cu megabyte
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 6. Dez 2002, 20:04
Hi,

was ist denn Inzeit und Auszeit ? Es ist wirklich mühsam das zu verstehen, was Du schreibst. Zumindest ich verstehe den Zusammenhang nicht.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7
  Alt 6. Dez 2002, 20:18
Als Anhaltspunkt :

Code:
WITH LiefModul.LiefDS DO BEGIN
  active := false;
  SelectSQL.Text := 'SELECT * FROM LIEF8 WHERE NR='+Edit1.Text;
  active := true;
  IF IsEmpty THEN BEGIN
    Showmessage ('neuer Datensatz !');
    insert;
    FieldByName ('LIEFSEIT').value := Today;
    FieldByName ('NR').value := StrToInt (Edit1.text);
  END
END;
Der Code legt einen neuen Datensatz an und besetzt die Werte Lieferanten-Nr. und das Feld, wann der Lieferant angelegt wurde vor. Allerdings mit SQL

Gruß
Hansa
  Mit Zitat antworten Zitat
DKamps

Registriert seit: 7. Nov 2002
Ort: Unna
30 Beiträge
 
Delphi 7 Enterprise
 
#8

Typen beachten

  Alt 7. Dez 2002, 12:52
Das Problem sind warscheinlich die Typen:
TTime ist intern ein Float wie von Dir als Fehler beschrieben, der die Anzahl der Tage bezeichnet, also zwischen 0 und 1 liegt. Ein Datum zählt entsprechend die Tage seit dem (1.1.1900 oder so). Beim Speichern in der Datenbank ist jetzt auf die korrekte Typumwandlung zu achten, also z.B.

MyTable.MyDatum.AsDateTime := StrToDate(Edit1.Text);
MyTable.MyDatum.AsString:= Edit1.Text;

MyTable.MyTime.AsDateTime := StrToTime(Edit1.Text);
MyTable.MyTime.AsInteger := round(DateTimePicker.Time *SecsPerDay);
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9
  Alt 7. Dez 2002, 13:55
Hi Megabyte,

DKamps Statement ist kaum noch was hinzuzufügen.

In meinem Beispiel :

Code:
FieldByName ('LIEFSEIT').value := Today;
ist das today schon vom richtigen Typ. Ansonsten mußt Du das so machen, wie er schreibt. Eins vielleicht noch : Nimmst Du ein Timestamp mußt Du den Typ so umwandeln :

Feld.AsDateTime := StrToDateTime (Edit....);

Außerdem würde ich mir mal in der Delphi-Hilfe die Formatierungsregeln solcher Zeit/Datumsfelder ansehen. Dort steht ausnahmsweise mal nicht drin : Wollen Sie die Funktion xy benutzen, so benutzen Sie die Funktion xy.

Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz