Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Uhrzeitabfrage in einer Spalte im CRDBGrid (https://www.delphipraxis.net/170234-uhrzeitabfrage-einer-spalte-im-crdbgrid.html)

Alterauge 6. Sep 2012 13:51

Datenbank: MySQL • Version: 5.5 • Zugriff über: MyConnection

Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Hallo,
habe ein CRDBGrid mit der Spalte Zuordnung!
Befindet sich in der Spalte (Zuordnung) der Text 'Zeitauftrag',
soll die Spalte Zeitstempel (DBEdit6) überprüft werden.

Ist die Uhrzeit = (DBEdit6) oder später:= then begin

Hier der Quelltext: was mache ich falsch?


Delphi-Quellcode:
procedure TForm1.Timer5Timer(Sender: TObject);
begin
if MyTable1.Locate('Zuordnung','Zeitauftrag',[loCaseInsensitive]) then begin
 if FormatDateTime ('hh:nn:ss', Now) = (DBEdit6.Text + ':00') then begin
  Edit2.Text:='Test Eintrag';
   Edit3.Text:=(FormatDateTime('hh:nn:ss',now));
    MyTable1.Edit;
     DBEdit2.Text := Edit2.Text;
      DBEdit3.Text := Edit3.Text;
     MyTable1.Post;
    MyTAble1.Refresh;
  end;
 end;
end;

FBrust 6. Sep 2012 13:56

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Hallo,

Du vergleichst zwei Zeichenketten miteinander, nicht zwei Uhrzeiten.

anstelle von DBEdit6.Text ist es vermutlich sinnvoller, direkt das entsprechende Feld in der Tabelle anzusprechen, also z. B.
Delphi-Quellcode:
MyTable1.FieldbyName('DeinDatumsFeld').AsDateTime
direkt mit Now() zu vergleichen.


Gruß
Frank

DeddyH 6. Sep 2012 14:01

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Und zum Vergleichen am besten die Routinen aus DateUtils benutzen.

Alterauge 6. Sep 2012 14:25

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Hallo FBrust;
meinst du das so?

Delphi-Quellcode:
 if MyTable1.FieldbyName('Stempel').AsDateTime =(FormatDateTime('hh:nn:ss',now))then begin

mkinzler 6. Sep 2012 14:28

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Nein.

Delphi-Quellcode:
if MyTable1.FieldbyName('Stempel').Value = Now then ...
Obwohl es mir nicht sinnvoll erscheint sowas auf die Sekunde festzulegen.

DeddyH 6. Sep 2012 14:29

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Du willst eine TDateTime mit einem String vergleichen?

[edit] Markus, diese Abfrage wird mit hoher Wahrscheinlichkeit false ergeben. [/edit]

mkinzler 6. Sep 2012 14:30

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Zitat:

Zitat von DeddyH (Beitrag 1181831)
Du willst eine TDateTime mit einem String vergleichen?

Und vorher den DateTime in einen DateTime Casten.

Ein perfektes Beispiel für Lernresistenz.

Der.Kaktus 6. Sep 2012 14:36

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Zitat:

Zitat von mkinzler (Beitrag 1181832)
Zitat:

Zitat von DeddyH (Beitrag 1181831)
Du willst eine TDateTime mit einem String vergleichen?

Und vorher den DateTime in einen DateTime Casten.

Ein perfektes Beispiel für Lernresistenz.


Sehr suspekt wuerde ich sagen:(

Alterauge 6. Sep 2012 14:39

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
hallo mkinzler,

geht leider nicht?

Delphi-Quellcode:
 if MyTable1.FieldbyName('Stempel').Value = Now then

DeddyH 6. Sep 2012 14:43

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Wieso wundert mich das nicht?
Zitat:

Zitat von DeddyH (Beitrag 1181831)
[edit] Markus, diese Abfrage wird mit hoher Wahrscheinlichkeit false ergeben. [/edit]


mkinzler 6. Sep 2012 14:44

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Was genau geht nicht?

DeddyH 6. Sep 2012 14:45

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Er hat nicht die richtige Millisekunde erwischt :mrgreen:

Alterauge 6. Sep 2012 14:49

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Variante des Typs (String) konnte nicht in
Typ (Date) konventiert werden.

Das ist die Fehlermeldung!

mkinzler 6. Sep 2012 14:50

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Zitat:

Zitat von DeddyH (Beitrag 1181844)
Er hat nicht die richtige Millisekunde erwischt :mrgreen:

Das vermute ich auch. Deshalb habe ich ja vorhin meine Zweifel geäussert. Ich würde hier nicht auf Gleichheit prüfen.

Alterauge 6. Sep 2012 14:51

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Hallo DeddyH,

wieso geht dieses?

Delphi-Quellcode:

if FormatDateTime ('hh:nn:ss', Now) = (Edit4.Text + ':00') then begin

DeddyH 6. Sep 2012 14:51

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Von welchem Typ ist denn das DB-Feld? VARCHAR?

Alterauge 6. Sep 2012 14:54

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Der Datatyp ist :Varchar(10)

Gruß Andre

mkinzler 6. Sep 2012 14:55

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Und gibt es da einen Grund dafür?

Alterauge 6. Sep 2012 15:17

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Wenn ich in der aktuellen Zeile bin,
geht es!

Befinde ich mich in einer anderen Zeile geht es nicht?

Delphi-Quellcode:
if MyTable1.FieldbyName('Stempel').Text =(FormatDateTime('hh:nn',now))then begin

mkinzler 6. Sep 2012 15:19

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Liest du unsere Antworten eigentlich? Oder verstehst du sie nur nicht und ignorierst sie deshalb?

Alterauge 6. Sep 2012 15:28

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
Natürlich lese ich sie!

Dann habe ich etwas übersehen oder nicht verstanden!

mkinzler 6. Sep 2012 15:31

AW: Uhrzeitabfrage in einer Spalte im CRDBGrid
 
-Überprüfung auf Basis von verknüpften Komponenten anstatt Inhalt Datenbank
-Falscher Typ in der Datenbank
-Überprüfung auf Sekunden
-Überprüfung auf Gleichheit
-Benennung Komponenetn ( div. andere Fragen von dir)
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz