Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   wildcare für Access (https://www.delphipraxis.net/190125-wildcare-fuer-access.html)

Luckner 1. Sep 2016 16:08

Datenbank: Access • Version: 2.0 • Zugriff über: Querry

wildcare für Access
 
Hallo,
in einer Access-Tabelle (Maschinen) sind im Feld 'Maschine' folgende Einträge;

UAH
a uah 0
a uah 1
UAH1
UAH 1

und noch einige andere Bezeichnungen. Mit dem SQL-String:
Delphi-Quellcode:
DatamoduleAuftrag.DataModule2.ADOQueryMaschinen.SQL.Add('select * from Maschinen where LCase(Maschine) Like ' + QuotedStr(Text));
wobei wenn Text := 'uah' ist dann ist Ergebnis = UAH. Ich würde gerne jedoch alle uah's finden, egal ob mit etwas vorne weg oder hinden dran. Wenn Text := '*uah*', oder
Text := '%uah%', dann findet die Abfrage jedoch nichts. Mit Firebird funktioniert das doch auch gut.

Danke.

BUG 1. Sep 2016 16:12

AW: wildcare für Access
 
Was ist in diesen Fällen die Ausgabe von QuotedStr?

Luckner 1. Sep 2016 16:17

AW: wildcare für Access
 
Die Ausgabe ist zur Testzwecken in einer DBTable. ausser im 1. Fall ist die Tabelle leer.

BUG 1. Sep 2016 21:54

AW: wildcare für Access
 
Ok, anders ausgedrückt: Hast du dir mal das Ergebnis von QuotedStr(Text) angeguckt bzw. mal mit einer hardgecodeten Anfrage getestet?

Jumpy 2. Sep 2016 10:18

AW: wildcare für Access
 
Hiernach hätte doch * als Wildcard passen sollen:

https://www.techonthenet.com/access/queries/like.php

p80286 2. Sep 2016 10:40

AW: wildcare für Access
 
Zitat:

Zitat von Jumpy (Beitrag 1346574)
Hiernach hätte doch * als Wildcard passen sollen:

https://www.techonthenet.com/access/queries/like.php

Ja und?
Access und/oder die Treiber die da im Spiel sind, führen nach meiner Erfahrung ein gewisses Eigenleben und es ist mir schon passiert das aus % * wurde und umgekehrt, ebenso könnte Klein und Großschreibung eine Rolle spielen. der beste Weg ist es, das systematisch durch zu probieren, und dabei nicht über eine der anderen Access-Fußangeln zu stolpern.

Gruß
K-H

Luckner 6. Sep 2016 10:43

AW: wildcare für Access
 
Jetzt funktioniert es so:
Delphi-Quellcode:
Text := '%'+ AnsiLowerCase(JvComboMaschine2.Text) +'%';

('select * from Maschinen where LCase(Maschine) Like ' + QuotedStr(Text));
Gruß, Luckner

haentschman 6. Sep 2016 11:03

AW: wildcare für Access
 
Moin...:P

Hier solltest du eins wissen. Mit LIKE dann das Datenbankmanagementsystem keinen Index benutzen. Das kann bei großen Mengen zu Performanceproblemen führen. :?

Luckner 6. Sep 2016 11:18

AW: wildcare für Access
 
Hallo haentschman,

danke, benutze ich nicht. Die Datentabelle ist hier auch nicht besonders groß.

Gruß, Luckner

DeddyH 6. Sep 2016 11:24

AW: wildcare für Access
 
Zitat:

Zitat von haentschman (Beitrag 1346933)
Moin...:P

Hier solltest du eins wissen. Mit LIKE dann das Datenbankmanagementsystem keinen Index benutzen. Das kann bei großen Mengen zu Performanceproblemen führen. :?

Du meinst sicher LIKE in Verbindung mit einer Wildcard am Anfang des Suchbegriffs ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Seite 1 von 2  1 2      

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