Autor |
Beitrag |
Arne Danikowski
      
Beiträge: 194
|
Verfasst: Do 25.01.07 18:44
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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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.
_________________ Markus Kinzler.
|
|
Arne Danikowski 
      
Beiträge: 194
|
Verfasst: 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
Einloggen, um Attachments anzusehen!
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 25.01.07 19:49
Delphi-Quelltext 1: 2: 3: 4:
| if table1.Locate('Name', edit1.text,[loCaseInsensitive,loPartialKey]) then else |
_________________ Markus Kinzler.
|
|
Arne Danikowski 
      
Beiträge: 194
|
Verfasst: 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 
      
Beiträge: 194
|
Verfasst: So 28.01.07 01:43
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 194
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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.
_________________ Markus Kinzler.
|
|
Arne Danikowski 
      
Beiträge: 194
|
Verfasst: So 28.01.07 19:22
Das hört sich interessant an damit werde ich mich mal beschäftigen
|
|