Entwickler-Ecke

Datenbanken - Abfrage mit ADOQuery und Platzhalterzeichen


SystemError - Fr 10.04.09 13:15
Titel: Abfrage mit ADOQuery und Platzhalterzeichen
Hi zusammen,

ich bastle momentan an einem kleinen Datenbankprogramm. Die Datenbank enthält u.a. eine Tabelle über Grundstücke(ID, Name, Fläche in m², PLZ, Ort etc.). Jetzt möchte ich eine PLZ-Suchfunktion basteln, für die der Nutzer auch nur Teile der PLZ eingeben muss (also z.B gibt er "0" in einem Editfeld ein für alle Wohnungen, in deren PLZ eine 0 enthalten ist). Dafür muss ich ja mit Platzhalterzeichen in der SQL-Abfrage arbeiten.
Die Abfrage in SQL funktioniert in Access, allerdings nicht bei Delphi (wo ich die per Copy&Paste eingefügt habe), er zeigt dann eine leeren DBGrid an (nur eine leere Zeile).

Mein Quelltext bis jetzt sieht so aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
adoquery3.Active:=false;
adoquery3.SQL.clear;
adoquery3.SQL.add('SELECT G_ID, Name, Fläche, Preis, PLZ FROM Grundstück ');
adoquery3.SQL.Add('WHERE PLZ Like "*0*";');
adoquery3.active:=true;


In Access sieht sie Abfrage mithilfe des Assistenten so aus:

Delphi-Quelltext
1:
2:
3:
   SELECT Grundstück.G_ID, Grundstück.Name, Grundstück.PLZ
   FROM Grundstück
   WHERE (((Grundstück.PLZ) Like "*0*"));


Robert.Wachtel - Fr 10.04.09 14:32

Meinst Du nicht, dass es unter Umständen ganz hilfreich wäre, zumindest das verwendete Datenbanksystem zu nennen?

Wahrscheinlich musst Du einen anderen Platzhalter verwenden.

http://lmgtfy.com/?q=sql+like

Ansonsten ist die Verwendung von Umlauten in Feld- und Tabellennamen äußerst bedenklich. Manchmal hilft es, die Bezeichner in eckige Klammern zu setzen. Aber da Du keine Fehlermeldung bekommen hast, gehe ich davon aus, dass es daran nicht liegt.


mkinzler - Fr 10.04.09 15:05

Der Standardjoker unter SQL ist %


Robert.Wachtel - Fr 10.04.09 15:09

...womit wieder mal bewiesen wäre, dass hier jede noch so simple FAQ eine Antwort auf dem Silbertablett serviert bekommt...