![]() |
Datenbank: SQL • Version: 1 • Zugriff über: ibExpert
DataSet Filtern
Hi Leute,
wie kann ich ein DbGrid Filtern, das er mir nur noch das anzeigt was ich in ein Editfeld schreibe. ich hab eine Datenbank worüber ich die Anweisung gebe
Delphi-Quellcode:
habe ich da jetzt noch was Vergessen?
TForm1.Button1Click(Sender: TObject);
var LSql : String; begin LSql := 'SELECT id, Beschreibung FROM technik WHERE beschreibung LIKE'; LSql := LSql + #39 +'%' + Edit1.Text + '%' + #39; ibdTechnik.SelectSQL.Text := LSql; ibdTechnik.Open; ich habe das DBGrid mit dem DataSource verknüpft und den DataSource mit dem DataSet so wie DataBase und Transaction. ich Hatte es auch mit dem...
Delphi-Quellcode:
...versucht.
ibdTechnik.Filtered := true;
ibdTechnik.Active := true; ibdTechnik.Locate('Beschreibung','test',[loPartialKey,loCaseInsensitive]); ibdTechnik.Filtered := true; aber da schleuderte der Compiler mir Error meldungen um die Ohren, das bei leere Datenmenge nicht abgefragt werden kann. Ich hoffe ich hab nicht umsonst ein neuen Thread geöffnet. schon mal Danke für eure Hilfe. |
AW: DataSet Filtern
Wieso Filtered auf true und dann auf true?
|
AW: DataSet Filtern
jaaaaaa, hab ich wohl über sehen, eigendtlich soll da false hin.
|
AW: DataSet Filtern
kann es sein daß Du #34 statt #39 nehmen mußt?
|
AW: DataSet Filtern
Schau mal ob es bei der Query Komponente einen OnFilter Event gibt
Dort kannst du dann entscheiden, was und wie gefiltert werden soll Wenn die Abfragemenge sehr groß ist, dann kann man es auch so programmieren, dass erst ab 3 Zeichen im Edit die Abfrage ausgeführt wird und danach arbeitet man mit dem Filter weiter. Dadurch reduziert sich die übertragene Datenmenge und auch die Anzahl der Abfragen |
AW: DataSet Filtern
Und verwende SQL-Parameter, dann muss man sich auch um den Zeichencode (#34, #39 oder wie?) keine Gedanken mehr machen.
|
AW: DataSet Filtern
Code:
Select id, bezeichnung from MeineTab where Bezeichnung like :BezLike
Delphi-Quellcode:
Für das OnFilter Event brauchst du noch eine Like Funktion
Qry.ParamByName[ 'BezLike' ] := '%' + Edit1.Text + '%';
![]() Ersetze in der Funktion * mit % und ? mit _ dann wird es SQL Like |
AW: DataSet Filtern
Außerdem fehlt in deinem InitalSQL glaube ich ein Leerzeichen hinter dem "LIKE"!
|
AW: DataSet Filtern
Vielen vielen dank für die schnellen Antworten.
gibt es da noch andere Möglichkeiten, bin in sql und db noch nicht so bewandert. Ich dachte wenn schon der sql code in IbExpert geht dann wird er ja in Delphi auch gehen. denn dort spuckt er mir ja haarklein in halbtextsuche alles aus. |
AW: DataSet Filtern
Was hast du denn bis jetzt probiert?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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