AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Leeres Datumsfeld abfragen?
Thema durchsuchen
Ansicht
Themen-Optionen

Leeres Datumsfeld abfragen?

Ein Thema von topoh · begonnen am 19. Jan 2006 · letzter Beitrag vom 19. Jan 2006
Antwort Antwort
topoh

Registriert seit: 17. Jan 2006
Ort: Recklinghausen
2 Beiträge
 
Delphi 7 Professional
 
#1

Leeres Datumsfeld abfragen?

  Alt 19. Jan 2006, 01:17
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo allerseits!
Hab nur ein kleines Problem (Stirnfalten schon echt groß)......
Bin kein Profi im Programieren, habs nie gelernt (Autodidakt) also nicht gleich
schimpfen wenn ich hier ne Plöde oder aber auch schon 1000mal gestellte Frage stelle, Danke.

Dieses hier funktioniert einwandfrei:
Delphi-Quellcode:
      Begin If TableHSKS['KdNr'] <= null Then Richedit2.Lines.Append(' ')
             else Richedit2.Lines.Append('Kd.-Nr.: '+(TableHSKS['KdNr']));end;
Sprich , ist keine Kundennummer im Feld vorhanden schreibe einfach ne Leerzeile.


Das hier funktioniert NICHT:
Delphi-Quellcode:
Dat := FieldByName('LetzteWartung').AsDateTime;
If TableHSKS['LetzteWartung'] <= null Then Label27.Caption :='N/A';
If TableHSKS['Zyclus']= '3 MonateThen dat:=dat+90;
If TableHSKS['Zyclus']= '6 MonateThen dat:=dat+180;
etc....
Ich kann zum verrecken das blöde Datumsfeld nicht abfragen ob ein Datum drinnsteht
oder nicht? Sollte LezteWartung leer sein und das Programm genau an dieser Stelle beendet werden,
dann steigt Delphi mit nem Fehler aus das er das Datum nicht berechnen kann.
Steht bei diesem Feld ein Datum drinn, alles Wunderbar und es werden je nach Zyclus die
Tage draufgerechnet. Und das funktioniert wunderbar.

Der einzigste Unterschied zu obigem ist der Feldtype, oben ist es Alpha also vom
Type String und unten ist es Type Datum und ich muss jetzt eigendlich nur wissen,
steht ein Datum im Feld oder isses leer?
Das mit der kleiner oder gleich Null ist eigendlich ganz Prima gewesen,
warum geht das nicht bei Datumsfeldern?
Gibbet da ne andere Abfrage zu als die obige schon funktionierende?


Mfg. Topoh
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Leeres Datumsfeld abfragen?

  Alt 19. Jan 2006, 01:26
Zitat von topoh:
Delphi-Quellcode:
Dat := FieldByName('LetzteWartung').AsDateTime;
If TableHSKS['LetzteWartung'] <= null Then Label27.Caption :='N/A';
If TableHSKS['Zyclus']= '3 MonateThen dat:=dat+90;
If TableHSKS['Zyclus']= '6 MonateThen dat:=dat+180;
etc....
Also das kann ja auch verständlicherweise nicht funktionieren. Delphi kennt das Schlüsselwort null nicht.

Aber probier mal so:

Delphi-Quellcode:
if FieldByName('LetzteWartung').IsNull then begin
   label27.caption := 'N/A' ;
end else if FieldByName('LetzteWartung').AsDateTime = 0 then begin
   label27.caption := 'N/A' ;
end else begin
   If TableHSKS['Zyclus']= '3 MonateThen dat:=dat+90;
   If TableHSKS['Zyclus']= '6 MonateThen dat:=dat+180;
end ;
  Mit Zitat antworten Zitat
topoh

Registriert seit: 17. Jan 2006
Ort: Recklinghausen
2 Beiträge
 
Delphi 7 Professional
 
#3

Re: Leeres Datumsfeld abfragen?

  Alt 19. Jan 2006, 11:19
Also da wäre ich nicht so draufgekommen und ich habe schon meine Bücher gewälzt
(Delphi5 Standartwerk von Elmar Warken und Delphi 6 Programmers Choice auch von Warken)
Das sind zusammen 2400 Seiten Delphi)
Aber da muss man erstmal ne Idee haben die in Richtung "IsNull" erstmal geht dann kann man evtl.
auch auf dieses kleine Teil kommen.
So funktioniert es jetzt Tadelos, ich bin begeistert, recht schönen Dank.
Man lernt halt nie aus, so weis ich jetzt wieder ein winziges Stück mehr wieder, Danke.

Mfg. topoh

Zitat:
Aber probier mal so:

Delphi-Quellcode:
if FieldByName('LetzteWartung').IsNull then begin
   label27.caption := 'N/A' ;
end else if FieldByName('LetzteWartung').AsDateTime = 0 then begin
   label27.caption := 'N/A' ;
end else begin
   If TableHSKS['Zyclus']= '3 MonateThen dat:=dat+90;
   If TableHSKS['Zyclus']= '6 MonateThen dat:=dat+180;
end ;
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Leeres Datumsfeld abfragen?

  Alt 19. Jan 2006, 11:34
Zitat von topoh:
Aber da muss man erstmal ne Idee haben die in Richtung "IsNull" erstmal geht dann kann man evtl.
auch auf dieses kleine Teil kommen.
Naja, dazu brauchts eigentlich keine 2400 Seiten Lektüre... F1 bei FieldByName drücken, Definition von TField anwählen, und auf Eigenschaften wählen... Da gibts ne ganze Liste der TField Eigenschaften, und IsNull sollte man da schon finden.
  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 03:08 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