Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage anpassen (https://www.delphipraxis.net/89696-sql-abfrage-anpassen.html)

Starworld1000 4. Apr 2007 11:06

Datenbank: Access • Version: 2003 • Zugriff über: AdoQuery

SQL Abfrage anpassen
 
Hallo alle zusammen

Ich hab ein kleines Problem an dem ich hänge
Ich lasse den Benutzer Werte eingeben die später gefiltert werden:

Bsp:
AdoQuery1.Parameters.ParamByName('Ziele').Value := DBZiel.Text;

Wenn aber der Benutzer nicht das Ziel kennt, sollen alle Daten in der Datenbank angezeigt werden, aber wie ?


MfG Starworld1000 :drunken: :drunken:

mkinzler 4. Apr 2007 11:08

Re: SQL Abfrage anpassen
 
Verwende like und setzte den Parameter ggf auf %

Starworld1000 4. Apr 2007 11:14

Re: SQL Abfrage anpassen
 
Like ?

Kannst du mir auch vielleicht sagen wo & wie ? :mrgreen:


Ich stehe auf ewig in deiner Schuld
:angel:

mkinzler 4. Apr 2007 11:22

Re: SQL Abfrage anpassen
 
In der SQL Abfrage das
SQL-Code:
where <Feld> = :Ziele
durch
SQL-Code:
where <Feld> like :Ziele
ersetzen.

Starworld1000 4. Apr 2007 11:28

Re: SQL Abfrage anpassen
 
Okay ich versuchs mal

Vielen Dank

shmia 4. Apr 2007 13:58

Re: SQL Abfrage anpassen
 
Ich würde zwei Abfragen verwenden; eine mit WHERE Bedingung und eine ohne.
Es gibt wahrscheinlich eine DataSource auf deinem Formular, dann wird dort umgeschaltet:
Delphi-Quellcode:
if EditFilter.Text ='' then
   DataSource1.DataSet := AdoQueryAll
else
   DataSource1.DataSet := AdoQueryFiltered;
Der Trick mit like und dem Parameter '%' kann bei grösserer Datenmenge zu langen Wartezeiten führen.

Wenn du nun aber mehr als 2 verschiedene Filter (und damit verschiedene WHERE Bedingungen) hast,
dann würde ist die Query zur Laufzeit aufbauen/modifizieren.

Jelly 4. Apr 2007 16:07

Re: SQL Abfrage anpassen
 
Zitat:

Zitat von shmia
Der Trick mit like und dem Parameter '%' kann bei grösserer Datenmenge zu langen Wartezeiten führen.

Sollte es hoffentlich nicht, denn jede halbwegs gescheite SQL Engine sollte
SQL-Code:
select * from Tabelle where Feld like '%'
zu
SQL-Code:
select * from Tabelle
optimieren.

EDIT:
Ok, ich sagte "gescheite". Hatte übersehen dass es sich um Access handelt :mrgreen:

Starworld1000 26. Apr 2007 18:46

Re: SQL Abfrage anpassen
 
LOL :lol:

Danke für die Tips

Ja Access hat so seinen Ruf weg :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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