AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit Access SQL Abfrage/ ADOQuery
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Access SQL Abfrage/ ADOQuery

Ein Thema von Dreamer · begonnen am 11. Jan 2007 · letzter Beitrag vom 11. Jan 2007
Antwort Antwort
Dreamer

Registriert seit: 4. Jan 2007
Ort: Hörden
9 Beiträge
 
Delphi 2005 Enterprise
 
#1

Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 14:33
Datenbank: Access mdb • Version: - • Zugriff über: ADO / SQL
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:
SELECT [bank].[daten]
FROM Christ
WHERE ((([bank].[daten]) Like "*-GB\"));
... dann funktioniert diese exakt so, wie es soll. Ausschließlich Pfade, die auf -GB\ enden.


Hat jemand Ideen oder eine Ahnung wie iman das beheben kann?

Gruß
Nik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 14:38
Vergleich auf UPPER
Markus Kinzler
  Mit Zitat antworten Zitat
Dreamer

Registriert seit: 4. Jan 2007
Ort: Hörden
9 Beiträge
 
Delphi 2005 Enterprise
 
#3

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 14:57
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...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:01
Delphi-Quellcode:
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE UPPER(Pfad) LIKE :Land';
ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+UpperCase('+edt_sland.text;
Markus Kinzler
  Mit Zitat antworten Zitat
Dreamer

Registriert seit: 4. Jan 2007
Ort: Hörden
9 Beiträge
 
Delphi 2005 Enterprise
 
#5

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:09
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...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:10
Welchen?
Markus Kinzler
  Mit Zitat antworten Zitat
Dreamer

Registriert seit: 4. Jan 2007
Ort: Hörden
9 Beiträge
 
Delphi 2005 Enterprise
 
#7

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:29
Wie "Welchen?"?

Der Code, den du gepostet hast, geht ja so nicht.
Also hab ich ihn umgeschrieben. Aber es ändert sich nichts.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:31
Kommt ein Fehler? Kenn mich mit der detailsyntax von Access nicht so aus.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 15:35
Verwende statt UpperCase lieber AnsiUpperCase. UpperCase führt zu Problemen bei Umlauten und Sonderzeichen.

Delphi-Quellcode:
ADOQuery1.SQL.Text:= 'SELECT * FROM Christ WHERE UPPER(Pfad) LIKE :Land';
      ADOQuery1.Parameters.ParamByName('Land').Value:='%-'+AnsiUpperCase(edt_sland.text)+'\';
Access verwendet (zumindest intern) den Asterisk '*' als Allquantor statt dem '%', hast du es damit schon versucht? ADO verwendet zwar das Prozentzeichen...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
shmia

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

Re: Probleme mit Access SQL Abfrage/ ADOQuery

  Alt 11. Jan 2007, 18:03
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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:49 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