Entwickler-Ecke
Datenbanken - Suchfunktion Oracle - Delphi
chibi-chan - Mo 06.09.10 19:23
Titel: Suchfunktion Oracle - Delphi
Ich habe einen cxGrid mit Daten gefüllt. (von Oracle)
Und jetzt würde ich gerne eine Suchfunktion einbinden... aber habe ehrlich gesagt keine Ahnung wie...
Muss ich in Oracle eine Funktion oder Procedure erstellen oder kann ich es direkt von Delphi aus machen??
Kann mir jemand einen Tipp geben >.<
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
mkinzler - Mo 06.09.10 21:36
Geht direkt im DataSet in Delphi. Was für eines verwendest du?
uko - Mo 06.09.10 23:57
mkinzler hat folgendes geschrieben : |
Geht direkt im DataSet in Delphi. Was für eines verwendest du? |
Ich vermute stark, daß wir hier von ODAC von Devart reden
chibi-chan hat folgendes geschrieben : |
Ich habe einen cxGrid mit Daten gefüllt. (von Oracle)
Und jetzt würde ich gerne eine Suchfunktion einbinden... aber habe ehrlich gesagt keine Ahnung wie...
|
Also, zum einen kannst Du natürlich die Filterfunktionen des cxGrid verwenden. Schau Dir dazu mal in den Demos vom DevExpress die entsprechenden an. Dann ist bie Filterung der Daten aber auf Client-Seite.
Dann kannst Du natürlich die Daten via dem SQL Statement filtern, auf dem das Grid aufbaut. Dazu brauchst Du halt einen eigenen Dialog, indem Du eingeben kannst, was die Filterkriterien sind.
Am schönsten wäre natürlich der Query-Mode, wie ich ihn noch aus Forms kenne: man geht in den Query-Mode, alle Felder des Grids leeren sich und man gibt in der/den entsprechenden Spalten die Bedingen ein und führt die Query dann mit dem Verlassen des Querymodes aus. Das hab ich als Umsetzung bisher aber nur bei den DOA Komponenten gesehen.
Was Du letztendlich brauchst hängt halt stark davon ab, wie komfortabel die Suche sein soll.
Grüße,
Uli
chibi-chan - Di 07.09.10 13:34
Kann ich es auf dieser Weise tun?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TfMain.Edit1Change(Sender: TObject); var search_exit : Boolean; begin try if Length(Edit1.Text) = 0 then search_exit := True;
clientDataSet1.first; clientDataSet1.locate('SNR', Edit1.Text, []); cxGrid1.SetFocus;
except on e: exception do ShowMessage('Cannot locate' + Edit1.Text); end; end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
chibi-chan - Do 09.09.10 16:47
Habe es ganz einfach gelöst ^^
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TfMain.btnSNRClick(Sender: TObject); var searchsnr: String; search_exit : Boolean;
begin searchsnr:= edtSNR.Text;
if Length(searchsnr)= 0 then search_exit := true; cxGrid1DBTableView1.DataController.Search.Locate(cxGrid1DBTableView1SNR.Index, searchsnr); end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Delete - Di 14.09.10 14:33
Hi,
cxGrid hört sich nach DevExpress an. Wenn ja, dann ist da schon alles eingebaut, um nicht über eine TDataSet-abgeleitete Klasse zu gehen...
In der Hilfe ist dazu alles gut beschrieben! Keywords: IncSearch, Filter, Groupbox, FilterBox...
gruß
rd3
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!