Delphi-PRAXiS
Seite 2 von 4     12 34   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi To_Date wird nicht erkannt (https://www.delphipraxis.net/163576-to_date-wird-nicht-erkannt.html)

Bernhard Geyer 5. Okt 2011 09:51

AW: To_Date wird nicht erkannt
 
Zitat:

Zitat von fanavity (Beitrag 1128514)
Auf der DB ist das Datum so abgespeichert: DD.MM.YYYY

Dein erster Versuch geht davon aus das das Feld als Datumsfeld definiert ist. Dann wird das DB-Interne Format für die Speicherung verwendet und das Format "DD.MM.YYYY" ist nur ein (konfigurierbares) Anzeigeformat.

fanavity 5. Okt 2011 09:54

AW: To_Date wird nicht erkannt
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1128518)
Zitat:

Zitat von fanavity (Beitrag 1128514)
Auf der DB ist das Datum so abgespeichert: DD.MM.YYYY

Dein erster Versuch geht davon aus das das Feld als Datumsfeld definiert ist. Dann wird das DB-Interne Format für die Speicherung verwendet und das Format "DD.MM.YYYY" ist nur ein (konfigurierbares) Anzeigeformat.

Und was bedeutet das dann für mich? Verstehe deine Aussage nicht so ganz. Sorry

Union 5. Okt 2011 10:01

AW: To_Date wird nicht erkannt
 
Da ist Einiges überflüssig, wieso die vielen Umwandlungen? Wenn das ein Date-Feld ist dann doch wohl so:
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').AsDateTime := StrToDate(Datum);
Query.open;
Aber da stellt sich mir auch die Frage, warum mit Stringdatum gearbeitet wird (also die var Datum)?

DeddyH 5. Okt 2011 10:02

AW: To_Date wird nicht erkannt
 
Genau darauf zielte meine Frage ab. Ein Datum ist ein Datum, da muss man doch nichts in String konvertieren und andersherum.

Sir Rufo 5. Okt 2011 10:06

AW: To_Date wird nicht erkannt
 
Er scheitert ja an der Umwandlung von dem Datum ("2011-10-05" Datum im Code ist eine String-Variable) in einen Date-Wert.

Hier sollte man der Funktion Delphi-Referenz durchsuchenStrToDate entsprechend angepasste FormatSettings mitgeben!

DeddyH 5. Okt 2011 10:15

AW: To_Date wird nicht erkannt
 
Es ist nur eine Vermutung, aber ich glaube, die Variable ist eher aus Verlegenheit als String deklariert. Sofern die Daten aus der DB ausgelesen werden, kann man sie doch auch gleich als TDate verarbeiten.

p80286 5. Okt 2011 10:20

AW: To_Date wird nicht erkannt
 
ich denke es klemmt an der Hochkommateritis:
Code:
WHERE DATUM = TO_Date( :Datum, "YYYY-MM-DD")
wird von Oracle nicht akzeptiert, es müsste so lauten:
Code:
WHERE DATUM = TO_Date( :Datum, 'YYYY-MM-DD')
oder legt die BDE hier noch einen Vereinfachungsschleier drüber?

Gruß
K-H

fanavity 5. Okt 2011 10:40

AW: To_Date wird nicht erkannt
 
Ich denke mal, dass der Fehler nun behoben ist. Nur leider ist mir aufgefallen, dass ich viel früher schon einen habe. Und zwar beim speichern der Daten.

Vielleicht könnr ihr ja mal rüber sehen!

Delphi-Quellcode:
     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('CREATE TABLE '+Tabelle+' ( Nummer real, IDNR real, IDNR2 real) ');

     Database.StartTransaction;

     try
         Query.ExecSQL;
         Database.Commit;
         except
          on E: Exception do
         begin
              Database.Rollback;
              ShowMessage(E.Message);
         end;
     end;


     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('INSERT INTO '+Tabelle+' ( Nummer, IDNR, IDNR2) ');
     Query.Sql.Add('SELECT a.TEST1, a.TEST2, b.TEST2');
     Query.Sql.Add('FROM DATA_TEST2 a, DATA_TEST2 b ');
     Query.Sql.Add('WHERE a.IDNR= 4 ');
     Query.Sql.Add('AND b.IDNR= 5');
     Query.Sql.Add('AND a.IDNR LIKE "%'+Variable+'" ');
     Query.Sql.Add('AND a.IDNR2 = b.IDNR');
     Database.StartTransaction;

     try
         Query.ExecSQL;
         Database.Commit;
         except
          on E: Exception do
         begin
              Database.Rollback;
              ShowMessage(E.Message);
         end;
     end;

     Query.Close;
     Query.SQL.Clear;
     Query.SQL.Add('SELECT * FROM '+Tabelle+'');
     Query.Open;
Die Daten werden nicht in die neue Tabelle übertragen. Mit Toad for Oracle funktioniert die Abfrage tadellos.

Sir Rufo 5. Okt 2011 10:59

AW: To_Date wird nicht erkannt
 
Delphi-Quellcode:

     Query.Close;
     Query.Sql.Clear;
     Query.Sql.Add('CREATE TABLE '+Tabelle+' ' );
     Query.Sql.Add('SELECT a.TEST1 Nummer, a.TEST2 IDNR, b.TEST2 IDNR2 ');
     Query.Sql.Add('FROM DATA_TEST2 a, DATA_TEST2 b ');
     Query.Sql.Add('WHERE a.IDNR= 4 ');
     Query.Sql.Add('AND b.IDNR= 5');
     Query.Sql.Add('AND a.IDNR LIKE "%'+Variable+'" ');
     Query.Sql.Add('AND a.IDNR2 = b.IDNR');
     Database.StartTransaction;

     try
         Query.ExecSQL;
         Database.Commit;
     except
          on E: Exception do
         begin
              Database.Rollback;
              ShowMessage(E.Message);
         end;
     end;

     Query.Close;
     Query.SQL.Clear;
     Query.SQL.Add('SELECT * FROM '+Tabelle+'');
     Query.Open;

fanavity 5. Okt 2011 11:14

AW: To_Date wird nicht erkannt
 
Funktioniert leider auch nicht :(

Die tabelle ist halt einfach leer.. Bekomme auch keine Fehlermeldung oder so..


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 Uhr.
Seite 2 von 4     12 34   

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