Probleme mit SQL Filter
-
Hallo,
ich arbeite seit einiger Zeit an einem Programm in dem man Datenbanken filtern kann. Leider bin ich nicht der Beste wenn es um SQl geht und da sich das ganze um eine Hausaufgabe handelt bitte ich um schnellstmögliche Hilfe.Ich habe in meiner Datenbank eine Spalte die aus zwei Wörtern bestehen, getrennt mit einem Leerzeichen z.B "Inv Nummer"
Wenn ich nun einen SQl Filter nutze z.B...
Query1->SQL->Add("Select * from Tabelle 1 where Inv Nummer.......bekomme ich eine Fehlermeldung, da er "Inv Nummer" nicht als einen Spaltennamen erkennt, was ja soweit auch klar ist.
Wenn ich nun aber das ganze in '' schreibe z.B...Query1->SQL->Add("Select * from Tabelle 1 where 'Inv Nummer'....kommt der Fehler zwar nicht, aber die SQL Abfrage geht nicht bzw. gibt mir keine Daten aus, die Tabelle bleibt leer.
Wie schreibe ich eine SQl Abfrage wenn der Spaltenname aus 2 Wörtern besteht???
-
Hallo
die Syntax ist korrekt und das Ergebnis auch (bei meinem Test mit PostGreSQL). Vermutlich hast du eine Bedingung, die für wirklich keine Datensätze erfüllt ist.
/Edit : Sorry ich habe bei meinem Test mit doppelten Hockommas gearbeitet
SELECT * FROM table WHERE "field name" = 10bis bald
akari
-
Wenn ich den Spaltennamen in "" schreiben wird das Programm nicht ausgeführt und bleibt bei "Inv Nummer" stehen.
-
siehe BCB-Hilfe: Escape-Sequenzen
-
Hallo
Zu beachten ist das bei dem Feldnamen die Groß/Kleinschreibung korrekt sein muß.
Allerdings beziehen sich meine Tests nur auf PostGreSQL.
Auf welchem Datenbank-System arbeitest du? Wenn es gar nicht geht, dann nimm eben nur Feldnamen ohne Leerzeichen, bzw. ersetzt das Leerzeichen durch einen Unterstrich./Edit : Achja, mein SQL-Anweisung war direkt aus einem DB-Frontend, im Quellcode must du die " natürlich mit Backslash maskieren.
bis bald
akari
-
Arbeite mit Access Datenbanken. Also die Groß/Kleinschreibung stimmt. Würde das mit den Splatennamen ändern eher vermeiden, da ich sonst jedemenge Quelltext umschreiben muss.
-
Hallo
hast du schon Linneas Hinweis und meine letzte Korrektur beachtet?
bis bald
akari
-
Wer hat eigentlich das Gerücht in Umlauf gebracht, dass Access eine Datenbank ist?

Das muß aber auch mit Access funktionieren. Schau Dir auch mal die Funktion QuotedStr() an. Das ist, meiner Meinung nach übersichtlicher, als Escape-Sequenzen zu verwenden.
Du solltest grundsätzlich auf Sonderzeichen in Feld- und Tabellennamen verzichten.