![]() |
Datenbank: Access mdb • Version: - • Zugriff über: ADO / SQL
Probleme mit Access SQL Abfrage/ ADOQuery
Hallo!
Ich habe folgendes Problem: Ich möchte aus einer Access-Tabelle alle Strings geliefert haben, die mit -XY\ enden. Der Code dafür ist folgender:
Delphi-Quellcode:
Land:=edt_sland.Text;
ADOQuery1.Active := false; ADOQuery1.SQL.Text:= 'SELECT * FROM daten WHERE Pfad LIKE :Land'; ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+edt_sland.text+'\'; ADOQuery1.Active := true; Das funktioniert soweit auch. Allerdings liegen zwischen den richtig ausgefilterten Daten auch hin und wieder einige andere. Beispiel: Ich suche nach Strings die auf -DK\ enden. Ich bekomme sämtliche Strings, jedoch auch einen in dem das Wort "Feldkulturen" vorkommt. Schreibe ich nun eine SQL-Abfrage in Access: Code:
Delphi-Quellcode:
... dann funktioniert diese exakt so, wie es soll. Ausschließlich Pfade, die auf -GB\ enden.
SELECT [bank].[daten]
FROM Christ WHERE ((([bank].[daten]) Like "*-GB\")); Hat jemand Ideen oder eine Ahnung wie iman das beheben kann? Gruß Nik |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Vergleich auf UPPER
|
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Delphi-Quellcode:
ADOQuery1.Active := false;
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE Pfad LIKE :Land'; ADOQuery1.Parameters.ParamByName('Land').Value:='%-(UPPER('+edt_sland.text+'))\'; ADOQuery1.Active := true; ...so? Das geht nicht... |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Delphi-Quellcode:
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE UPPER(Pfad) LIKE :Land';
ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+UpperCase('+edt_sland.text; |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Delphi-Quellcode:
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE UPPER(Pfad) LIKE :Land';
ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+UpperCase(edt_sland.text)+'\'; Das funktioniert leider auch nicht... |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Welchen?
|
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Wie "Welchen?"?
Der Code, den du gepostet hast, geht ja so nicht. Also hab ich ihn umgeschrieben. Aber es ändert sich nichts. |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Kommt ein Fehler? Kenn mich mit der detailsyntax von Access nicht so aus.
|
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Verwende statt UpperCase lieber AnsiUpperCase. UpperCase führt zu Problemen bei Umlauten und Sonderzeichen.
Delphi-Quellcode:
Access verwendet (zumindest intern) den Asterisk '*' als Allquantor statt dem '%', hast du es damit schon versucht? ADO verwendet zwar das Prozentzeichen...
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE UPPER(Pfad) LIKE :Land';
ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+AnsiUpperCase(edt_sland.text)+'\'; Grüße Mikhal |
Re: Probleme mit Access SQL Abfrage/ ADOQuery
Schon mal daran gedacht, ein eigenes Feld für die Länderkennung einzuführen?
ISO-3166 alphanum-2 (DE=Deutschland, FR=Frankreich) ist da gut geeignet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz