![]() |
Datenbank: Oracle • Version: 9 • Zugriff über: BDE/ODBC
To_Date wird nicht erkannt
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:
Vielleicht hat ja jemand eine Idee?
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; |
AW: To_Date wird nicht erkannt
Hallo,
habe eigentlich keine Erfahrung mit Orcale, aber ggf. könnte es sein, dass der FUnktionsname casesensitive ist? Nur so als Idee. Gruß |
AW: To_Date wird nicht erkannt
Wieso so umständlich?
Es müsste doch gehen wenn du den Parameter schon auf Delphi-Ebene als Datumswert mittels
Delphi-Quellcode:
übergibst.
Query.Params.ParamByName('DATUM').AsDate := Datum;
Und was soll diese bescheuderte DD-MM-YYYY - Formatierung? Entweder ISO-Format (YYYY-MM-DD) oder "normales" Format (DD.MM.YYYY). |
AW: To_Date wird nicht erkannt
Ich glaube, Du sprichst an der Stelle mit der BDE/ODBC und kannst kein produktspzifisches, natives SQL absetzen.
|
AW: To_Date wird nicht erkannt
Delphi-Quellcode:
Bei dieser Variante sagt er mir:
Query.Params.ParamByName('DATUM').AsDate := StrToDate(Datum);
Zitat:
|
AW: To_Date wird nicht erkannt
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 |
AW: To_Date wird nicht erkannt
In welchem Format liegt dein Datum in selbiger Variablen denn jetzt vor?
Code:
oder
YYYY-MM-DD
Code:
Dein Select erwartet auf jeden Fall
DD-MM-YYYY
Code:
DD-MM-YYYY
Zitat:
Zitat:
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; |
AW: To_Date wird nicht erkannt
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:
Dann sagt er mir, dass es den Parameter Datum nicht gibt.
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; |
AW: To_Date wird nicht erkannt
Welchen Datentyp hat das Datum eigentlich in der DB? Date oder String?
|
AW: To_Date wird nicht erkannt
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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 by Thomas Breitkreuz