Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Suchen in Datenbank DBase
Arne Danikowski - Do 25.01.07 18:44
Titel: Suchen in Datenbank DBase
Hallo Leute,
ich habe eine kleines Datenbanktool (DBAse für Windows) erstellt und habe nun probleme mit dem Suchen.
hier der Quelltext, mit dem ich bisher suche:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Panel1Click(Sender: TObject); begin table1.Locate('Name', edit1.text,[]); table1.Locate('Vorname', edit2.text,[]); table1.Locate('Verwendung', edit3.text,[]); table1.Locate('Ort', edit4.text,[]); table1.Locate('Bemerkung', edit5.text,[]); |
Folgende Probleme tauchen auf:
1.) Wenn nach einem Suchbegriff gesucht wird, der nicht vorhanden ist kommt es zu einer Fehlermeldung
2.) Es wird zwischen Groß- und Kleinschreibung unterschieden
3.) Nur 100% Übereinstimmung wird gefunden (Zuche ich zum Beispiel nach meinem Namen, muss ich "Danikowski" eingeben.
"Dani" bringt keine Ergebnisse
4.) Es wird nur ein Datensatz gefunden
Kann da jemand helfen?
mfg Arne
mkinzler - Do 25.01.07 18:50
Zitat: |
1.) Wenn nach einem Suchbegriff gesucht wird, der nicht vorhanden ist kommt es zu einer Fehlermeldung |
Dürfte eigentlich nicht, es wird nur ein entsprechenden Rückgabecode geliefert.
Welcher Fehler kommt?
Zitat: |
2.) Es wird zwischen Groß- und Kleinschreibung unterschieden
3.) Nur 100% Übereinstimmung wird gefunden (Zuche ich zum Beispiel nach meinem Namen, muss ich "Danikowski" eingeben. |
Schau dir mal den 3. Parameter an, da kannst du einstellen, daß auch Teilstrings gefunden werden und Groß-Kleinschreibung nicht mehr unterschieden wird.
Arne Danikowski - Do 25.01.07 19:07
Danke für die Antwort
Zitat: |
Dürfte eigentlich nicht, es wird nur ein entsprechenden Rückgabecode geliefert.
Welcher Fehler kommt? |
Siehe Bild
Zitat: |
Schau dir mal den 3. Parameter an, da kannst du einstellen, daß auch Teilstrings gefunden werden und Groß-Kleinschreibung nicht mehr unterschieden wird. |
Und wie funktioniert das?
mfg
Arne
mkinzler - Do 25.01.07 19:49
Delphi-Quelltext
1: 2: 3: 4:
| if table1.Locate('Name', edit1.text,[loCaseInsensitive,loPartialKey]) then else |
Arne Danikowski - Fr 26.01.07 13:29
Ok das funktioniert!
So habe ich das nun:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.Button1Click(Sender: TObject); begin if table1.Locate('Name', edit1.text,[loCaseInsensitive,loPartialKey]) then begin form2.show end else if table1.Locate('HAUPTBERUF', edit2.text,[loCaseInsensitive,loPartialKey]) then form2.show else if table1.Locate('VERWENDUNG', edit3.text,[loCaseInsensitive,loPartialKey]) then form2.show else if table1.Locate('ORT', edit4.text,[loCaseInsensitive,loPartialKey]) then form2.show else if table1.Locate('Bemerkung', edit5.text,[loCaseInsensitive,loPartialKey]) then form2.show
else
ShowMessage ('Keine Daten gefunden')
end; |
1.) nun möchte ich in form2 alle gefundenen datensätze in einem DBGrid feld anzeigen lassen.
2.) Wie sortiere ich die Tabele in einem DBGRID?
Ich denke ich muss irgendwie die Daten Filtern?
Arne Danikowski - So 28.01.07 01:43
keiner ne Idee?
Delete - So 28.01.07 10:26
entweder du nimmst SQL oder du setzt den entsprechenden index vor der suche um. ich empfehle dir SQL. Ist zwar etwas mehr aufwand, dein Progy umzustellen, aber du kannst dich bei dieser gelegenheit auch gleich von der BDE verabschieden... entsprechendes findest du zu hauf im forum. <HTH>
Arne Danikowski - So 28.01.07 14:04
Ich kann leider nicht auf SQL umsteigen, da diese Datenbankform ja einen SQL Server benötigt. Die Anwendung läuft aber auf einem Client, auf dem ich keine Software istallieren kann.
mkinzler - So 28.01.07 14:17
Arne Danikowski hat folgendes geschrieben: |
Ich kann leider nicht auf SQL umsteigen, da diese Datenbankform ja einen SQL Server benötigt. Die Anwendung läuft aber auf einem Client, auf dem ich keine Software istallieren kann. |
Auch für die BDE gibt es SQL (LocalSQL) beim Einsatz von
TQuery statt
TTable.
Bei Verwendung einer embedded-Datenbank z.B. FB embedded oder sqlite ist auf dem Client keine Installation nötig.
Arne Danikowski - So 28.01.07 19:22
Das hört sich interessant an damit werde ich mich mal beschäftigen
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!