AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FireBird, Datentyp TIME clientseitig mit Delphi bestücken
Thema durchsuchen
Ansicht
Themen-Optionen

FireBird, Datentyp TIME clientseitig mit Delphi bestücken

Ein Thema von Daniel · begonnen am 13. Okt 2011 · letzter Beitrag vom 13. Okt 2011
Antwort Antwort
Seite 1 von 2  1 2      
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 10:32
Datenbank: FireBird • Version: 2.5 • Zugriff über: FibPlus
Moin,

ich habe hier mit einer Datentpalte zutun, die vom Typ "TIME" ist. Wie setze ich deren Wert clientseitig in meiner Delphi-Anwendung? Gebe ich einen Timestamp, der nur einen Zeit-, aber keinen Datumswert enthält, bekomme ich einen Fehler, dass der Wert ungültig sei. Auch Tests mit fixen Ganz- oder Fließkommazahlen schlugen fehl. Nicht mal eine 0 (Zahlenwert) wird akzeptiert.

Ich hatte gehoft, dass ich auch diesen Wert wie üblich mit FieldByName('...').Value:= xy setzen kann.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#2

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 10:37
Hallo Daniel,

kann es vielleicht etwas mit dem Variant zu tun haben? Hast mal versucht native Zugriffs-Properties ala AsDateTime ... zu verwenden?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 10:41
Ja, .AsDateTime habe ich auch versucht - ohne Erfolg.


Ich sehe gerade, dass FibPlus ein .AsTime anbietet, laut Doku aber nur in der Query und nicht im DataSet - mal schauen, ob das so (noch) stimmt.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 11:03
Hi,

Zitat:
In dialect 3, TIME stores the Time of day, with no date portion: "time-only". Storage is a 32-bit unsigned integer. Storable times range from 00:00 to 23:59:59.9999. ...

If time of day needs to be stored, extract the hours, minutes and seconds elements from the Date data and convert it to a string...
aus "The Firebird Book"... also versuchs mal über einene entsprechenden String....

Grüße
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#5

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 11:29
@Daniel: Kriegst du eine Delphi oder eine Firebird Exception? Da der TIME Datentyp mit Dialect 3 zur Verfügung steht ist die Frage, ob du dich mit FIBPlus auch mit Dialect 3 verbindest?
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#6

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 11:46
Bei mir klappt ein:

Code:
DBGrid1.DataSource.DataSet.FieldByName('MYTIME').AsDateTime := Now;
Bei folgender Firebird 2.5.1 Dialect 3 Tabelle:

Code:
CREATE TABLE T1 
(
  ID                  BIGINT        NOT NULL,
  MYTIME                TIME,
 CONSTRAINT PK_T1 PRIMARY KEY (ID)
);
ohne Probleme. Verwende allerdings IBDAC 4 mit Delphi 2010.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 12:03
Ich werde das Szenario gleich mal auf ein Mini-Beispiel herunter brechen. Möglicherweise läuft hier irgendwas anderes schief, da der Datentyp des Felds korrekt als ftTime erkannt wird, aber keine der hier bisher genannten Zuweisungen funktionieren wollte.

Den SQL-Dialekt werde ich prüfen - ich habe das Projekt übernommen und wenn diese falsch gesetzt wäre, dann würde dies bedeuten, dass dem schon sehr lange Zeit so gewesen sein muss.


Vielen Dank schon mal für das Ausprobieren.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 12:05
Wenn die Datenbank schon alt ist ( aus IB Zeiten), dann bleibt der Dialect 1 bestehen.
Markus Kinzler
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 12:08
Also FibPlus verbindet sich explizit mit Dialekt 3. Das Feld steht ja auch so in der DB und wenn ich den Wert via Trigger zuweise (ich greife dazu auf CURRENT_TIMESTAMP zu), dann geht's auch und sowohl IBExpert als auch meine eigene Anwendung zeigen den korrekten Wert.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#10

AW: FireBird, Datentyp TIME clientseitig mit Delphi bestücken

  Alt 13. Okt 2011, 12:18
Welchen Datentyp hat denn das persistente Feld when ftTime gesetzt ist? Bei mir wird ein persistentes Feld als TTimeField erstellt, wo dann FieldKind auf fkData gesetzt ist. Würd das wirklich mal mit einem einfachen Beispiel versuchen nachzubilden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:24 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