AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi To_Date wird nicht erkannt

To_Date wird nicht erkannt

Ein Thema von fanavity · begonnen am 5. Okt 2011 · letzter Beitrag vom 5. Okt 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#1

To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:11
Datenbank: Oracle • Version: 9 • Zugriff über: BDE/ODBC
Hallo,

ich habe ein SQL-Statement, welches ich in Delphi ausführen will. Dort möchte ich ein Datum abgleichen. Doch ich bekomme eine Exception, die aussagt das die Funktion To_Date nicht bekannt sei.. Woran kann das liegen?

Delphi-Quellcode:
     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('SELECT *');
     Query.Sql.Add('FROM DATA_Test');
     Query.Sql.Add('WHERE DATUM = TO_Date(":Datum", "DD-MM-YYYY") ');
     Query.Params.ParamByName('DATUM').Value := Datum;
     Query.open;
Vielleicht hat ja jemand eine Idee?
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
543 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:17
Hallo,

habe eigentlich keine Erfahrung mit Orcale, aber ggf. könnte es sein, dass der FUnktionsname casesensitive ist? Nur so als Idee.

Gruß
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:18
Wieso so umständlich?
Es müsste doch gehen wenn du den Parameter schon auf Delphi-Ebene als Datumswert mittels
Query.Params.ParamByName('DATUM').AsDate := Datum; übergibst.

Und was soll diese bescheuderte DD-MM-YYYY - Formatierung? Entweder ISO-Format (YYYY-MM-DD) oder "normales" Format (DD.MM.YYYY).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.040 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:18
Ich glaube, Du sprichst an der Stelle mit der BDE/ODBC und kannst kein produktspzifisches, natives SQL absetzen.
Gruß, Jo
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#5

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:25
Query.Params.ParamByName('DATUM').AsDate := StrToDate(Datum); Bei dieser Variante sagt er mir:

Zitat:
Im Projekt Test.EXE ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "2011-10-04" ist kein Gültiges Datum.
Okay.. Wenn ich also mit BDE/ODBC kommuniziere, denke ich kaum das er die Befehle von Oracle kennt.. Also muss das vorher umgewandelt werden..
  Mit Zitat antworten Zitat
jaevencooler

Registriert seit: 8. Sep 2005
Ort: Friedrichshafen
41 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:36
Moin, Moin,


also wenn Du die BDE nutzt, dann kannst Du irgendwo einstellen wie die BDE das SQL behandeln soll, also auf dem Client ausführen oder auf dem Server ausführen. Ist schon lange !!!!!!!! her das ich mit BDE gearbeitet habe, aber ich bin mir sicher das Du die BDE auf sowas wie Pass Through stellen kannst, damit Dein SQL direkt auf dem Server ausgeführt wird.

Nutzt Du ODBC, dann ist die Frage welchen ODBC Treiber benutzt Du ? Grundsätzlich kannst Du aber auch hier natives PL/SQL absetzen.

Beide Alternativen sind eher schlecht, besser wären native Treiber wie von Allround Automation oder DevArt, die kosten Geld ich weiß, aber es gibt hier auch gute Freeware Komponenten (siehe mal bei Torry nach)

Was Deine letzte Fehlermeldung angibt, da sind die Literate falsch, würde ich mal sagen, sprich Dein Datumformat ist irgendwie nicht so wie es erwartet wird. Hierbei musst Du bedenken das auch die Einstellungen auf dem Oracle Server wichtig sind !


Beste Grüße
Michael
Michael
Wissen ist Macht, nichts wissen macht auch nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:46
In welchem Format liegt dein Datum in selbiger Variablen denn jetzt vor?
Code:
YYYY-MM-DD
oder
Code:
DD-MM-YYYY
Dein Select erwartet auf jeden Fall
Code:
DD-MM-YYYY
Delphi-Quellcode:
     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('SELECT *');
     Query.Sql.Add('FROM DATA_Test');
     Query.Sql.Add('WHERE DATUM = TO_Date(":Datum", "DD-MM-YYYY") ');
     Query.Params.ParamByName('DATUM').Value := Datum;
     Query.open;
Query.Params.ParamByName('DATUM').AsDate := StrToDate(Datum); Bei dieser Variante sagt er mir:

Zitat:
Im Projekt Test.EXE ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "2011-10-04" ist kein Gültiges Datum.
Okay.. Wenn ich also mit BDE/ODBC kommuniziere, denke ich kaum das er die Befehle von Oracle kennt.. Also muss das vorher umgewandelt werden..
Wie wäre es damit:
Delphi-Quellcode:
     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('SELECT *');
     Query.Sql.Add('FROM DATA_Test');
     Query.Sql.Add('WHERE DATUM = TO_Date( :Datum, "YYYY-MM-DD") '); // Die " um :Datum müssten eigentlich überflüssig sein
     Query.Params.ParamByName('DATUM').Value := Datum;
     Query.open;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#8

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:47
Danke für die Antwort..

Leider muss ich vorrerst mit dieser Lösung weiter arbeiten.. Also muss ich sehen wie ich das Problem löse.

Auf der DB ist das Datum so abgespeichert: DD.MM.YYYY
Wenn ich mein Datum genauso Formatiere und übergeben will, bekomme ich keine Fehlermeldung. Aber auch keine Ausgabe.

Wenn ich den Parameter in Anführungszeichen setzte:

Delphi-Quellcode:
     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('SELECT *');
     Query.Sql.Add('FROM DATA_Test');
     Query.Sql.Add('WHERE DATUM = ":Datum"');
     Query.Params.ParamByName('DATUM').Value := StrToDate(Datum);
     Query.open;
Dann sagt er mir, dass es den Parameter Datum nicht gibt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.383 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:49
Welchen Datentyp hat das Datum eigentlich in der DB? Date oder String?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#10

AW: To_Date wird nicht erkannt

  Alt 5. Okt 2011, 09:51
Welchen Datentyp hat das Datum eigentlich in der DB? Date oder String?
Das Feld Datum ist vom Typ Date
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf