Delphi-PRAXiS
Seite 3 von 4     123 4   

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)

jobo 5. Okt 2011 11:32

AW: To_Date wird nicht erkannt
 
Im Letzten Versuch fehlt nach dem Create [tablename] ein "as" vor dem Select.
Ansonsten scheint mir die Like Operation mit Doppelhochkomma verkehrt. Doppelhochkomma ist Delimiter für spezielle Spaltennamen in ORacle. Da es aber um einen String Wert geht, muss mit einfachen Hochkomma plus QuotedStr gearbeitet werden oder mit doppelten einfachen Hochkommata.

p80286 5. Okt 2011 11:35

AW: To_Date wird nicht erkannt
 
so ohne Handbuch, muß es nicht so sein:
Code:
Insert Into Tabelle (Feld1,Feld2...) Values(Wert1,Wert2...)
Gruß
K-H

jobo 5. Okt 2011 11:38

AW: To_Date wird nicht erkannt
 
Man kann entweder ein Create Table mit Select kombinieren
Create table [tablename] as [Select..]
oder wie Du geschrieben hast
oder insert into [tablename] ([Columns]) mit Select kombinieren.
Im letzten Fall gehören glaub ich runde Klammern um das Select

Edit: Geht mit und ohne Klammern, glaub das hab ich mit Update plus Select verwechselt.

p80286 5. Okt 2011 11:43

AW: To_Date wird nicht erkannt
 
Zitat:

Zitat von jobo (Beitrag 1128550)
Im letzten Fall gehören glaub ich runde Klammern um das Select

Das Handbuch sagt, so isses!

Gruß
K-H

fanavity 5. Okt 2011 11:46

AW: To_Date wird nicht erkannt
 
Also..

Weder QuotedStr, noch
Delphi-Quellcode:
Query.Sql.Add('AND a.IDNR LIKE ''%'+Variable+''' ');
hat geklappt. Wenn ich bei Oracle ein AS benutze, sagt er mir das ich Syntaxfehler vorliegt. Irgendwie finde ich das ganze seltsam :/

PS:

Momentane Version:

Delphi-Quellcode:

 Query.Sql.Add('CREATE TABLE '+Tabelle+' ( Nummer real, IDNR real, IDNR2 real) ');
 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;

jobo 5. Okt 2011 13:07

AW: To_Date wird nicht erkannt
 
Entweder so
Query.Sql.Add('AND a.IDNR LIKE '+QuotedStr('%'+Variable) );
oder so glaub ich
Query.Sql.Add('AND a.IDNR LIKE ''''+'%'+Variable+'''' );
(ungetestet)

Du solltest aber mal das "PassThrough Thema" klären,
"Create Table Tablename as Select"
geht mit Sicherheit -in Oracle.

Ich kann mich nicht mehr erinnern, ob man BDE auf native Betrieb umstellen kann. Aber es wurde ja hier irgendwo gesagt.
Wenn dann wäre noch die Frage, ob das per Query oder per Connection geht. Falls Du schon viel BDE -kompatibel
entwickelt hast und nun die ganze Verbindung auf Native umstellst, fliegt Dir evtl. auch was um die Ohren.

fanavity 5. Okt 2011 13:30

AW: To_Date wird nicht erkannt
 
Leider finde ich zum Thema PassThrough nicht wirklich viel Brauchbares.. :/

Jumpy 5. Okt 2011 13:44

AW: To_Date wird nicht erkannt
 
Kurze Frage: Was ist real in Oracle für ein Datentyp? Ne Zahl, oder?
Dann kann man doch nicht mit "like" irgendwas vergleichen.

fanavity 5. Okt 2011 13:49

AW: To_Date wird nicht erkannt
 
Ich habe es nun mit Integer gemacht. Und wie gesagt.. Alle Statements funktionieren im Toad for Oracle einwandfrei.

Das Like % steht lediglich dafür, dass davor noch beliebig viele (unbekannte) zeichen stehen können.. Da es sich immer nur um die letzten 4 handelt ;)

DeddyH 5. Okt 2011 13:55

AW: To_Date wird nicht erkannt
 
Trotzdem ist der Einwand äußerst berechtigt. LIKE ist lediglich für alphanumerische Felder zu gebrauchen (VARCHAR2 z.B.). Willst Du unbedingt LIKE auf Zahlen loslassen, dann solltest Du diese vorher casten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Seite 3 von 4     123 4   

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