Wpis z mikrobloga

#qt #programowanie #cpp

prepare("select * from klient where imie like '%mar%'");
-------------------------------------------------------------------------------

mam comboBox z siedmioma różnymi wartościami: imię,nazwisko,miasto, itd.
oraz pole textEdit gdzie wpisuje się czego chcemy szukać

jak przygotować zapytanie te co widać na górze, aby za imie podstawiało mi to co wybiorę z comboBox, a za '%mar%', to co wpiszę w textEdit?
  • 13
  • Odpowiedz
@trebeter: są różne szkoły jak to robić, ja lubię tak:

query = QSqlQuery(db);
query.prepare("SELECT imie, nazwisko FROM klient WHERE imie LIKE :imie AND nazwisko LIKE :nazwisko");
query.bindValue(":imie", string_imie);
  • Odpowiedz
@trebeter: nie wiem czy dobrze rozumiem, pole w tabeli to qtextedit? wtedy używasz qcompleter
QStringList completers << "lista" << "podpowiedzi" << "wczesniej" << "znane" << "slowa";
QCompleter *qcompleter = new QCompleter(completers, this);
qcompleter->setCaseSensitivity(Qt::CaseInsensitive);
textEdit->setCompleter(qcompleter);
  • Odpowiedz
@kradzionyLogin: nie o to chodzi
nie potrzebują podpowiedzi
aktualnie mam tak, że aby znalazło mi pole z imieniem Mariusz, muszę wpisać cały zwrot mariusz
chciałbym aby wystarczyło wpisać przykładowo mar i tez to znalazło

ciężko mi się przelewa myśli
  • Odpowiedz
gdy wpiszę mar nic mi nie znajduję, dopiero jak wpiszę mariusz pokazuje mi to co widać na obrazku qt3
chcę aby po wpisaniu zwrotu mar było widać to co jest na obrazku qt3 bo na razie to nic mi nie znajduje
  • Odpowiedz
@trebeter: aa to nie chcesz podpowiedzi w textedit tylko filtr tabel, Ctrl+c | ctrl+v z mojego projektu:

void filterTable(QString filter) {
for(int i = 0; i < ui->table->rowCount(); i++) {
if(!ui->table->item(i, 1)->text().contains(filter)) { // 1 to numer kolumny, mozesz
  • Odpowiedz