Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Suchfeld aus Datenbank erstellen (https://www.delphipraxis.net/212069-suchfeld-aus-datenbank-erstellen.html)

KevSmi 12. Dez 2022 23:40

Datenbank: MariaDB • Version: 10 • Zugriff über: SQL

Suchfeld aus Datenbank erstellen
 
Guten Abend,

Ich möchte gerne ein "Suchfeld" erstellen, welches mir aus der Datenbank Vorschläge macht sobald ich 3 Buchstaben eingegeben habe. Dieses Vorschlagsfenster soll sich automatisch öffnen nach Eingabe der drei Buchstaben.
Dieser Vorschlag soll dann auch Auswählbar sein und in das Feld übertragen werden, in welches ich vorher die drei Buchstaben eingegeben habe.

Wie setze ich dieses Vorhaben am "schlankesten" um ?


Beispiel: Suche nach Ort

MariaDB ist vorhanden und schon eingebunden.

Danke schon einmal und viele Grüße

joachimd 13. Dez 2022 04:45

AW: Suchfeld aus Datenbank erstellen
 
Zitat:

Zitat von KevSmi (Beitrag 1516096)
Ich möchte gerne ein "Suchfeld" erstellen, welches mir aus der Datenbank Vorschläge macht sobald ich 3 Buchstaben eingegeben habe. Dieses Vorschlagsfenster soll sich automatisch öffnen nach Eingabe der drei Buchstaben.
Dieser Vorschlag soll dann auch Auswählbar sein und in das Feld übertragen werden, in welches ich vorher die drei Buchstaben eingegeben habe.

Ich würde auf jeden Fall über einen Timer gehen, der bei jedem Tastendruck aufgezogen wird und dann vllt. eine halbe Sekunde läuft, da sonst zu viele Suchanfragen abgesetzt werden.
Im Time-Ereignis den Timer zuerst deaktivieren, dann die Abfrage entsprechend absetzen:
Code:
SELECT [Feld] FROM [Tabelle] WHERE [Feld] LIKE :suchbegriff LIMIT 20 ORDER BY 1
Du kannst das Edit-Feld durch eine Combobox ersetzen bzw. überlagern.
Das Ergebnis in eine Combobox-Items übertragen, Text der Combobox setzen, fertig.

TigerLilly 13. Dez 2022 05:43

AW: Suchfeld aus Datenbank erstellen
 
Wenn das Abfragen der DB nicht wirklich sehr schnell geht, würde ich das Abfragen asynchron machen, sonst kommt es bei jedem Tastendruck zu Verzögerungen.
Alternative: Schon vorher alle Orte ermitteln und den Filter dann lokal und inmemory machen.

KevSmi 13. Dez 2022 16:26

AW: Suchfeld aus Datenbank erstellen
 
Vielen Dank an Euch, so hats geklappt. :-D

Andreas13 13. Dez 2022 19:39

AW: Suchfeld aus Datenbank erstellen
 
Zitat:

Zitat von KevSmi (Beitrag 1516139)
Vielen Dank an Euch, so hats geklappt. :-D

Hallo KevSmi,
könntest Du Details Deiner konkreten Lösung verraten, damit auch andere Leser daraus lernen können?
Grüße, Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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-2025 by Thomas Breitkreuz