Intelligente Suche in Datenbanken
-
Hallo Gemeinde,
Wenn ich jetzt ein Formular öffne mit dem man eine Suchanfrage an eine DB stellt, ist es möglich dass mir beim tippen schon Begriffe angezeigt werden?
Zb. In einer Adressdatenbank möchte ich mir alle Kontakte anzeigen lassen die in Mönchengladbach wohnen. Ich öffne das Formular und es wird Aachen, Ahlen usw schon angezeigt, weil ich in beiden Städten Kontakte habe. Ich tippe M mir wird Mahlsfeld, Mannheim, München usw angezeigt, ich tippe ö und siehe da es steht unter anderem auch Mönchengladbach da mit einem Klick darauf bekomme ich mein gewünschtes Ergebnis.
Kann qt sowas?
-
Hallo Gemeinde,
Wenn ich jetzt ein Formular öffne mit dem man eine Suchanfrage an eine DB stellt, ist es möglich dass mir beim tippen schon Begriffe angezeigt werden?
Zb. In einer Adressdatenbank möchte ich mir alle Kontakte anzeigen lassen die in Mönchengladbach wohnen. Ich öffne das Formular und es wird Aachen, Ahlen usw schon angezeigt, weil ich in beiden Städten Kontakte habe. Ich tippe M mir wird Mahlsfeld, Mannheim, München usw angezeigt, ich tippe ö und siehe da es steht unter anderem auch Mönchengladbach da mit einem Klick darauf bekomme ich mein gewünschtes Ergebnis.
Kann qt sowas?
hi @Balu66
ich glaube wonach du sucht ist:
https://doc.qt.io/qt-5/qsortfilterproxymodel.html
https://doc.qt.io/qt-5/qtwidgets-itemviews-customsortfiltermodel-example.html
aber du gibst einen auch nicht viel Informationen, um deine Situation herum, damit ich mehr sagen könnte
-
Mag sein, ich fange gerade an mich mich der Datenbankschnittstelle auseinander zu setzen. Was ich möchte ist, dass wenn ich eine Suchanfrage über ein Formular starten möchte in dem ich jetzt zB nach all meinen Kontakten die in Mönchengladbach wohnen, das von vornherein schon der erste im Alphabet vorhandene Eintrag aus meiner Db angezeigt wird, darunter in einem Listenfeld die nächsten 3 ( oder so ), beim tippen soll ( nice to have ) der Buchstabe dann schwarz, oder fett oder sonst wie hervorgehoben werden und die Anzeige aktualisiert werden. Der erste Buchstabe hervorgehoben und dann der erste im Alphabet vorkommende Begriff aus der Db mit den 3 nächsten. Mit dem zweiten Buchstaben soll es dann genauso funktionieren wie mit dem ersten usw, bis man dann letztendlich nur noch auf den Begriff klicken braucht.
Hoffe dass ich das jetzt besser erklärt habe was ich möchte
-
Mag sein, ich fange gerade an mich mich der Datenbankschnittstelle auseinander zu setzen. Was ich möchte ist, dass wenn ich eine Suchanfrage über ein Formular starten möchte in dem ich jetzt zB nach all meinen Kontakten die in Mönchengladbach wohnen, das von vornherein schon der erste im Alphabet vorhandene Eintrag aus meiner Db angezeigt wird, darunter in einem Listenfeld die nächsten 3 ( oder so ), beim tippen soll ( nice to have ) der Buchstabe dann schwarz, oder fett oder sonst wie hervorgehoben werden und die Anzeige aktualisiert werden. Der erste Buchstabe hervorgehoben und dann der erste im Alphabet vorkommende Begriff aus der Db mit den 3 nächsten. Mit dem zweiten Buchstaben soll es dann genauso funktionieren wie mit dem ersten usw, bis man dann letztendlich nur noch auf den Begriff klicken braucht.
Hoffe dass ich das jetzt besser erklärt habe was ich möchte
@Balu66
kommt auf die Datenbank an welche du verwendest, aber die meisten, wenn nicht alle, haben Keywords die man der Querry mitgeben kann um nach Sachen zu suchen.SQL hat zum Beispiel
like
https://www.w3schools.com/sql/sql_like.aspQt selbst biete eine Reihe von Klassen mit denen man leicht eine Schnittstelle zwischen Datenbank und View herstellen kann. Z.B:
https://doc.qt.io/qt-5/qsqlquerymodel.html
https://doc.qt.io/qt-5/qsqltablemodel.html
https://doc.qt.io/qt-5/qsqlrelationaltablemodel.html