AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Prism Welchen Fehler hab ich im SQL Statement??

Welchen Fehler hab ich im SQL Statement??

Offene Frage von "winx"
Ein Thema von winx · begonnen am 12. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2   
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#1

Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:01
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Hallo,

wenn ich folgende Abfrage an meine Access DB richte bekomme ich immer eine Exception:

Delphi-Quellcode:
    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;
Wenn ich jedoch eine Spalte ohne "-" abfrage kommt was zurück

Delphi-Quellcode:
    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;
Wie muß ich die Anfrage stellen damit es läuft???

Gibt es irgendwo n Beispiel???

Danke,
winx
  Mit Zitat antworten Zitat
Benutzerbild von Loki77
Loki77

Registriert seit: 21. Feb 2006
Ort: Trier
132 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:03
- 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.
"What I cannot create, I do not understand."
-Richard P. Feynman
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:06
Zitat von winx:
'SELECT EAN-ABAS FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"'
Du gibst im SQL vor, dass eine Differenz der beiden Felder EAN und ABAS gewünscht ist. Wenn Sonderzeichen im Bezeichnernamen vorkommen, musst Du den Bezeichner quoten. SQL Standard ist [komischer Name], µ$ SQL und manche andere verstehen auch "komischer Name".
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Schrammel

Registriert seit: 21. Jan 2006
Ort: Koblenz
29 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:09
Ich glaube, es muss heißen:

sqlStatement := 'SELECT EAN-ABAS FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"'; Probiers mal damit!

Gruss

Stefan
  Mit Zitat antworten Zitat
Schrammel

Registriert seit: 21. Jan 2006
Ort: Koblenz
29 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:12
Das war jetzt ganz schlau von mir, ich habe vergessen, das Statement zu korrigieren. Also nochmal:

Ich glaube, es muss heißen:

sqlStatement := 'SELECT [EAN-ABAS] FROM Typenschilder WHERE Typenschilder.MaskeT = "NT"'; Probiers mal damit!

Gruß

Stefan
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:16
Wer einen Feld- oder Tabellennamen mit einem Minuszeichen wählt,
dem sollte man gleich einen Dübel bohren.
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;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Loki77
Loki77

Registriert seit: 21. Feb 2006
Ort: Trier
132 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 12. Apr 2006, 14:18
Zitat:
Wer einen Feld- oder Tabellennamen mit einem Minuszeichen wählt,
dem sollte man gleich einen Dübel bohren.
Einmal den Fehler gemacht, immer dran gedacht!
(sch...limmer Spruch)
"What I cannot create, I do not understand."
-Richard P. Feynman
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#8

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 13. Apr 2006, 09:02
Das mit [] funktioniert

Leider hab ich nich die DB erstellt, sondern darf sie nur verwenden
  Mit Zitat antworten Zitat
Schrammel

Registriert seit: 21. Jan 2006
Ort: Koblenz
29 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 13. Apr 2006, 09:27
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: Welchen Fehler hab ich im SQL Statement??

  Alt 13. Apr 2006, 10:51
Zitat von Schrammel:
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!
Drei Jahre später...
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.
Man kann also nur davor warnen, Feld- oder Tabellennamen falsch zu wählen; es sind tickende Zeitbomben
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 Uhr.
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