AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Oracle TIMESTAMP und DATE

Ein Thema von Keflock · begonnen am 21. Jan 2017 · letzter Beitrag vom 22. Jan 2017
Antwort Antwort
Keflock

Registriert seit: 23. Nov 2006
17 Beiträge
 
Delphi 2007 Enterprise
 
#1

Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 21:56
Datenbank: ORACLE • Version: 11g XE • Zugriff über: ohne ODBC, direkt TNS und TADO-Komponenten
Hallo zusammen,

ich beginne mit einem neuen Projekt und möchte gerne Daten in einer ORACLE DB verwalten. Ich gehe über TADO-Connection direkt auf den Provider "Microsoft OLE DB Provider for Oracle", wo ich aus TNSNAMES die Datenbank direkt anspreche. Also kein ODBC Umweg.

Basierend auf früheren Projekten (mit MySQL) wollte ich in der ORACLE DB eine Tabelle mit Spalten vom Typ TIMESTAMP(6) anlegen und über TADO-Query darauf zugreifen.

Leider bekomme ich eine Fehlermeldung "Der Datentyp wird nicht unterstützt."

Wechsle ich in der Tabelle die Spalte zu DATE, so funktioniert die TADO-Query problemlos, aber ich kann so nur das Datum abspeichern.

Wie gehe ich damit um? Ich könnte VARCHAR2 einsetzten und den String mit TO_DATE immer wieder konvertieren. Aber es ist nicht das Optimum.

Oder soll ich eine andere Komponente einsetzten?

Dankend
Keflock
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 22:02
In Delphi ist TDateTime ein Floatwert. Kann den Oracle?

Abgesehen davon enthält Date bei Oracle hiernach http://www.datenbank-sql.de/oracle-datentypen.htm auch die Uhrzeit.

Wie greifts Du mit Deiner TAdoQuery auf die Date-Spalte zu?
Zeig' mal bitte den Quelltext dazu.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 22:27
Die Verwendung von ADO und des MS-Providers ist genauso ein Umweg wie über ODBC zu gehen.
Ich kann dir nur empfehlen Komponenten wie von Devart zu nehmen um entweder direkt auf den Oracle-Treiber zu gehen oder gleich ohne jegliche Treiber direkt auf die DB zuzugreifen.


Übrigens ist der MS-Provider für Oracle seit jahren von MS abgekündigt und ist nicht mehr als eine Machbarkeitsstudie
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Keflock

Registriert seit: 23. Nov 2006
17 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 22:54
Hallo,

es gibt noch kein Quellcode, ich habe nur die Komponenten platziert.

Aber, es geht doch, denn auch wenn die Spalte als DATE definiert ist, wird die Uhrzeit mitabgespeichert und mit

to_char(AB_SCHLUESSEL_VON,'DD.MM.RRRR HH24:MM:SS')

bekomme ich es richtig angezeigt/ausgewertet.

Danke
Keflock
  Mit Zitat antworten Zitat
Keflock

Registriert seit: 23. Nov 2006
17 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 23:00
und als Quellcode in Delphi reicht es aus, wenn ich mit

select * from Tabelle

und

datatimetostr(ADOQuery1ADSCHLUESSEL_VON.Value)

arbeite!

KEflock
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 23:10
Wie wäre es denn einfach mal mitADOQuery1ADSCHLUESSEL_VON.AsDateTime oder ganz banalADOQuery1ADSCHLUESSEL_VON.AsString
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Oracle TIMESTAMP und DATE

  Alt 21. Jan 2017, 23:34
Die Verwendung von ADO und des MS-Providers ist genauso ein Umweg wie über ODBC zu gehen.
Ich kann dir nur empfehlen Komponenten wie von Devart zu nehmen um entweder direkt auf den Oracle-Treiber zu gehen oder gleich ohne jegliche Treiber direkt auf die DB zuzugreifen.
z.Zt. ist ODBC bei MS ganz aktuell. Aber das kann morgen ja schon wieder Schnee von gestern sein.

Übrigens ist der MS-Provider für Oracle seit jahren von MS abgekündigt und ist nicht mehr als eine Machbarkeitsstudie
Anders ausgedrückt, wenn Du keinen Wert auf korrekte Daten legst, ist der MS-Provider genau richtig. Wenn schon ADO, dann den Oracle-Provider.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: Oracle TIMESTAMP und DATE

  Alt 22. Jan 2017, 13:24
@p80286
Genau, wenn dann den OLEDB Provider von Oracle (ODAC Installation bspw.)

@Timestamp
Wenn Genauigkeit im groben Millisekundenbereich ausreichend ist, kann ganz normal der Oracle Date Typ verwendet werden. Keine Probleme.

Ein guter Client / gute Clientcomponenten sind aber auch nicht zu verachten.
Denke da an die Komponenten von Allroundautomation, hab aber wenig Erfahrung damit gesammelt. Devart ist ja bereits emmpfohlen worden.
Gruß, Jo
  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 10:16 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