![]() |
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Welchen Fehler hab ich im SQL Statement??
Hallo,
wenn ich folgende Abfrage an meine Access DB richte bekomme ich immer eine Exception:
Delphi-Quellcode:
Wenn ich jedoch eine Spalte ohne "-" abfrage kommt was zurück
sqlStatement := 'SELECT EAN-ABAS FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"';
ADOQuery.SQL.Clear; ADOQuery.SQL.Text := sqlStatement; Logger.Debug('SQL QUERY: '+sqlStatement); ADOQuery.Open; Repeat Logger.Debug(ADOQuery.FieldByName('EAN-ABAS').AsString); //FEHLER ADOQuery.Next; until ADOQuery.EOF;
Delphi-Quellcode:
Wie muß ich die Anfrage stellen damit es läuft???
sqlStatement := 'SELECT Typennummer FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"';
ADOQuery.SQL.Clear; ADOQuery.SQL.Text := sqlStatement; Logger.Debug('SQL QUERY: '+sqlStatement); ADOQuery.Open; Repeat Logger.Debug(ADOQuery.FieldByName('Typennummer').AsString); ADOQuery.Next; until ADOQuery.EOF; Gibt es irgendwo n Beispiel??? Danke, winx |
Re: Welchen Fehler hab ich im SQL Statement??
- wird hier halt als operator genommen, kann die gerade aber auch nicht sagen wie man das löst...
Hab in dem Fall immer Felder mit _ geschrieben... Hatte mal das problem mit Feldname "PLZ/Ort", "PLZ_Ort" klappt dann. |
Re: Welchen Fehler hab ich im SQL Statement??
Zitat:
|
Re: Welchen Fehler hab ich im SQL Statement??
Ich glaube, es muss heißen:
Delphi-Quellcode:
Probiers mal damit!
sqlStatement := 'SELECT EAN-ABAS FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"';
Gruss Stefan |
Re: Welchen Fehler hab ich im SQL Statement??
Das war jetzt ganz schlau von mir, ich habe vergessen, das Statement zu korrigieren. Also nochmal:
Ich glaube, es muss heißen:
Delphi-Quellcode:
Probiers mal damit!
sqlStatement := 'SELECT [EAN-ABAS] FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"';
Gruß Stefan |
Re: Welchen Fehler hab ich im SQL Statement??
Wer einen Feld- oder Tabellennamen mit einem Minuszeichen wählt,
dem sollte man gleich einen Dübel bohren. :twisted: Du würdest ja auch nie auf die Idee kommen, Variablen dieser Art in Pascal zu deklarieren:
Delphi-Quellcode:
var
EAN-Nummer : integer; 2fach : boolean; |
Re: Welchen Fehler hab ich im SQL Statement??
Zitat:
(sch...limmer Spruch) |
Re: Welchen Fehler hab ich im SQL Statement??
Das mit [] funktioniert :-)
Leider hab ich nich die DB erstellt, sondern darf sie nur verwenden :wall: |
Re: Welchen Fehler hab ich im SQL Statement??
Da sieht man mal wieder, dass Tips der Kategorie "Aus der Praxis für die Praxis" auch noch ihre Daseinsberechtigung haben neben konzeptionellen Wolkenschieberein der Kategorie "... sowas darf man doch nicht machen, das geht an allen Standards vorbei...".
Lasst uns lernen, mit den Fehlern unserer Vorgänger zu leben und das Beste daraus zu machen! MfG Stefan |
Re: Welchen Fehler hab ich im SQL Statement??
Zitat:
Die Datenbank und die Anwendung erfreuen sich beim Endkunden grosser Beliebtheit. Nun ist allerdings die Access-Datenbank nicht mehr ausreichend, es wird auf Oracle umgestiegen. Schade, nun läuft aber diese eine Abfrage mit den eckigen Klammer nicht mehr, da bei Oracle hier Anführungszeichen verwendet werden müssten. Leider hat der ursprüngliche Programmierer die Firma verlassen. Der Kunde ist sauer und verlangt sofortige Behebung des Fehler. Ein einziges Minuszeichen führt also zu bösen Briefen an die Geschäftsleitung, sowie Aufwand ohne Bezahlung. :warn: Man kann also nur davor warnen, Feld- oder Tabellennamen falsch zu wählen; es sind tickende Zeitbomben |
Re: Welchen Fehler hab ich im SQL Statement??
@shmia:
Ich stimme dir ja zu, dass man das in einer neu anzulegenden Datenbank nicht macht! Aber hier haben wir anscheinend bereits den Fall, dass eine Datenbank vorhanden ist, die verwendet werden muss. Da lohnt es sich nicht, sich Gedanken über das "Hätte man und "Sollte man" oder das "Hätte man besser nicht" oder "sollte man besser nicht" zu machen. Hier kommt es darauf an, das konkrete Problem zu lösen. Ich stimme Dir auch zu, dass man so einen Zustand schafft, der zu einem späteren Zeitpunkt X zum Problem werden kann. Wenn ich das jedoch gegen das jetzige Problem abwäge, so kann ich als Außenstehender keinen qualitativen Unterschied erkennen, was die Maßnahme meiner Ansicht nach grundsätzlich rechtfertigt. winx hat ja anscheinend nicht den Auftrag, eine Datenbank grundsätzlich auf neue solide füße zu stellen, sondern ein spezielles Problem zu lösen. Wenn dieses Problem ausreichend übersichtlich ist, wird der Kunde sich lieber eine Hand abhacken, als einem kostenintensiven Gesamt-Refactoring der Datenbank zuzustimmen. Um das Wissen über den ergriffenen Workaround nicht verlorengehen zu lassen bietet sich die Nutzung von ALM-Produkten an. Wer weiß, vielleicht finden wir zwei beide einen Link auf diesen Thread im Konfigurations-Management-System unseres nächsten Arbeitgebers wieder! :) MfG Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 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