Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Befehl kennt das Feld nicht (https://www.delphipraxis.net/92101-sql-befehl-kennt-das-feld-nicht.html)

nachtstreuner60 14. Mai 2007 15:26

Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos 6.5

SQL Befehl kennt das Feld nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Delphianer,

habe mal wieder ein SQL-Abfrageproblem.

Folgender SQL Befehl liefert eine Fehlermeldung, ich denke mal, das der Feldname schuld dran ist
vielleicht ein reserviertes Wort:

Delphi-Quellcode:
 dSQL := 'SELECT * from IDOC_REAL where AKTION = '+
        QuotedStr('ABHOL')+' and SCanCODE like '+
        Quotedstr(edGANG.TEXT);

with dModulREAL do begin
     zQUeryReal.SQL.Clear;
     reditSQL.Clear;
     zQueryReal.SQL.TEXT := dSQL;
     zQueryReal.open;
     rEditSQL.Lines.Add(zQueryReal.SQL.Text);
end;
Fehlermeldung:

[edit=MrSpock]Schließendes Code Tag eingefügt. Mfg, MrSpock[/edit]

mkinzler 14. Mai 2007 15:33

Re: SQL Befehl kennt das Feld nicht
 
Wie heißt den das Feld SCANCODE oder SCanCODE?

marabu 14. Mai 2007 16:26

Re: SQL Befehl kennt das Feld nicht
 
Hallo Markus,

der Feldname ScanCODE wird gemäß den Regeln der SQL Spezifikation in Großbuchstaben umgewandelt und erst dann in den Systemkatalog aufgenommen. Die Schreibweise der Feldnamen ist egal. Die Fehlermeldung behauptet, dass SCANCODE kein Feld der Tabelle IDOC_REAL ist - und ich glaube die SQL-Engine hat Recht.

Freundliche Grüße

mkinzler 14. Mai 2007 16:49

Re: SQL Befehl kennt das Feld nicht
 
Es kommt darauf an. FireBird unterstützt nämlich casesensitive Tabellen/Feldnamen. wenn dies aktiviert ist, muß man diese Quoten.

marabu 14. Mai 2007 17:26

Re: SQL Befehl kennt das Feld nicht
 
Hallo Markus,

ich dachte immer, FireBird strebe nach SQL-Konformität. Im SQL-Standard steht es genau umgekehrt, wenn ich mich nicht irre: Wird ein Identifier in Quotes (delimited identifier) angegeben, dann ist dessen Schreibweise zu beachten. Ist das bei FB wirklich anders herum?

Freundliche Grüße

mkinzler 14. Mai 2007 18:26

Re: SQL Befehl kennt das Feld nicht
 
Hallo Achim,
Vielleicht mißverstehen wir uns. wenn man nicht quoted wird in Großbuchstaben umgewandelt. Es könnte ja aber möglich sein, das das Feld mit Quotes angelegt wurde.
Ich würde aber auf das Feature verzichten.
Markus.

nachtstreuner60 15. Mai 2007 06:36

Re: SQL Befehl kennt das Feld nicht
 
Hallo marabu & mKinzler

vielen Dank für eure Antworten. Was könnte ich nun ausprobieren ?

Habe es auch schon mit vorangestelltem Tabellennamen ausprobiert, funktioniert auch nicht

z.B. Idoc_Real.ScanCode , das ist übrigens auch die schreibweise wie es in der Tabelle angelegt ist.

{ScanCode}

was bedeutet Quoten bei Feldnamen,in Hochkomma stellen ?

etwa so ''ScanCode'' ?

Vielen Dank schonmal im voraus.

mkinzler 15. Mai 2007 06:46

Re: SQL Befehl kennt das Feld nicht
 
Zitat:

was bedeutet Quoten bei Feldnamen,in Hochkomma stellen ?

etwa so ''ScanCode'' ?
Nein "ScanCode"

uwewo 15. Mai 2007 06:48

Re: SQL Befehl kennt das Feld nicht
 
Funktioniert denn

SQL-Code:
 dSQL := 'SELECT SCanCODE from IDOC_REAL';

mkinzler 15. Mai 2007 06:49

Re: SQL Befehl kennt das Feld nicht
 
Zitat:

Zitat von uwewo
Funktioniert denn

SQL-Code:
 dSQL := 'SELECT SCanCODE from IDOC_REAL';

Würde dann als
SQL-Code:
SELECT SCANCODE from IDOC_REAL;
interpretiert. Deshalb ja meine Frage, wie das Feld in der Dtenbank heißt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz