![]() |
Datenbank: Oracle • Version: 10g • Zugriff über: ADO
Können Unterschiede beim DB-Zugriff am Provider liegen?
Hallo,
schreibe folgendes SQL-Statement in einer MemoBox und gebe das dann (über: Query.SQL.Text := Memo.Text;) an eine TADOQuery weiter:
Code:
Durch -- ist ja Feld 2 auskommentiert.
Select
Feld1, --Feld2, Feld3, Feld4 From wfm.Test Läuft die Verbindung über Oracles ODBC-Treiber klappt das Ganze. Greife ich aber ohne ODBC, direkt mit dem Oracle-Provider auf die DB zu, so bekomme ich die Fehlermeldung, dass das SQL-Statement falsch ist. Bin der Meinung herausgefunden zu haben, dass er nun alles ab dem -- auskommentiert, als Statement quasi nur "Select Feld1," ankommt. Kann das sein? |
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Das könnte schon sein.
Schaut man sich folgende Query an:
SQL-Code:
dann könnte man ja auf die Idee kommen, den Zeilenumbruch durch ein Leerzeichen zu ersetzen:
SELECT * FROM Tabelle
WHERE Feld=42
SQL-Code:
Genau die gleiche Query; nur andere Schreibweise.
SELECT * FROM Tabelle WHERE Feld=42
Die Annahme dass Zeilenumbruch ein Leerzeichen sei funktioniert wunderbar und fehlerfrei, bis halt jemand kommt und mit "--" eine Zeile auskommentieren möchte. Du könntest deine Annahme mit folgender Query bestätigen:
SQL-Code:
Select
Feld1 FROM wfm.Test --Feld2, Feld3, Feld4 From wfm.Test |
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Ich kann das nicht nachvollziehen (MS Oder Oracle Provider, egal). Es wird immer nur die Zeile weggelassen, die auskommentiert ist.
Vielleicht hängts an einem Semicolon? Vielleicht hast Du "kranke" Zeilenumbrüche? P.S: Was ist die genau Fehlermeldung? |
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Zitat:
|
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Dann nimmt man halt /**/
|
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Zitat:
From Tabelle --blabla funktioniert. Will heißen, wenn das Statement, das vor dem -- steht, soweit OK ist, wird der Select ausgeführt. D.h. am -- selber stört es sich nicht. |
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Ich vermute wie shmia auch, dass Zeilenumbrüche in Leerzeichen umgewandelt werden. Daraus folgt, dass alles nach dem -- komplett ignoriert wird. Für Dich heißt das also, dass Du entweder auf Kommentare verzichtest oder eben eine alternative Syntax verwendest, welche über ein Kommentarendezeichen verfügt.
|
AW: Können Unterschiede beim DB-Zugriff am Provider liegen?
Hallo zusammen,
konnte shmia's und DeddyH's Vermutung mit ein paar Test bestätigen. Warum das aber so ist, konnte ich nicht herausfinden, ist aber auch egal, da es mir mal wieder nur ums Wissen ging. Es liegt aber mal wieder am 9er Oracle Client, auf den neuen Rechenrn mit 10er oder 11er Client gab es nämlich keine Probleme. Das Benutzen anderer Kommentarzeichen ist da der Workarround der Stunde, wobei das in sofern blöd ist, als das das der Workarround für den Workarround ist (lange Geschichte, die ein paar alte Threads von mir betrifft (z.B. den zu LONG-Datentypen)). Konsequenz wird erstmal ein baldiges Upgrade der Clients sein (soweit möglich)und irgendwann mal vllt. der Wechsel zu nativen Komponenten, die ja einige mir schon öfters vorgeschlagen haben (auf jeden Fall weg von ODBC). Danke und Schluss! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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