![]() |
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:
Fehlermeldung:
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; [edit=MrSpock]Schließendes Code Tag eingefügt. Mfg, MrSpock[/edit] |
Re: SQL Befehl kennt das Feld nicht
Wie heißt den das Feld SCANCODE oder SCanCODE?
|
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 |
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.
|
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 |
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. |
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. |
Re: SQL Befehl kennt das Feld nicht
Zitat:
|
Re: SQL Befehl kennt das Feld nicht
Funktioniert denn
SQL-Code:
dSQL := 'SELECT SCanCODE from IDOC_REAL';
|
Re: SQL Befehl kennt das Feld nicht
Zitat:
SQL-Code:
interpretiert. Deshalb ja meine Frage, wie das Feld in der Dtenbank heißt.
SELECT SCANCODE from IDOC_REAL;
|
Re: SQL Befehl kennt das Feld nicht
Hallo nochmal,
nein auch der Befehl
Delphi-Quellcode:
funktioniert nicht. Hier mal die Fehlermeldung im SQL-Manager
dSQL := 'SELECT SCanCODE from IDOC_REAL';
Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. SCANCODE. At line 1, column 17. in der Tabelle steht der Feldname so drin: ScanCode VarChar(10) Zeichensatz Win 1251 |
Re: SQL Befehl kennt das Feld nicht
Hallo mKinzler und alle an diesem Thread beteiligten,
ich habe noch folgendes ausprobiert :
Delphi-Quellcode:
Jetzt erhalte ich keine Fehlermeldung mehr, aber auch keine Datensätze, obwohl es über 100 Sätze gibt, die dem Suchkriterium entsprechen müssten
dSQL := 'SELECT * from IDOC_REAL where AKTION = '+
QuotedStr('ABHOL')+' and ''ScanCode'' = '+ Quotedstr(edGANG.TEXT); :wall: ratlos |
Re: SQL Befehl kennt das Feld nicht
Wie gesagt, musst du den Feldnamen quoten, wenn due Groß-/Kleinschreibung verwendest:
Delphi-Quellcode:
dSQL := 'SELECT "SCanCODE" from IDOC_REAL';
|
Re: SQL Befehl kennt das Feld nicht
Hallo mKinzler
Du hast recht. Es funktioniert jetzt. Ich habe Quoten falsch gemacht, statt dem " habe ich zweimal '' gesetzt. Vielen Dank für diesen Tip. Auch den anderen nochmals herzlichsten Dank. Wollte mich schon fast damit abfinden, den Feldnamen abzuändern, da wären aber zigTausende Progzeilen und Tabellen betroffen gewesen. :) Auf Euch und euer Fachwissen ist wie immer Verlass. |
Re: SQL Befehl kennt das Feld nicht
Hier nochmal für alle die richtige Schreibweise, dann funktionierts auch:
SQL-Code:
Nochmals Danke ! Einen schönen Tag noch, und für alle Väter in zwei Tagen ein schönes Festchen..
SELECT * from IDOC_REAL where AKTION = 'ABHOL' and "ScanCode" = 'G0700'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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-2025 by Thomas Breitkreuz