trebeter
#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?
  • Najlepsze
  • Wszystkie komentarze
k.....n
k.....n
@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);
k.....n
k.....n
@trebeter: a no i nigdy nie używaj SELECT * tylko SELECT imie, nazwisko oszczedzisz sobie kłopotów przy modyfikacji struktury bazy danych jak np. zmieni się kolejność kolumn.
trebeter
trebeter Autor
0
@kradzionyLogin: dzięki za pomoc
Jeszcze jedno pytanie
jak przygotować prepare("select * from klient where imie like :imie");
bindValue(":imie", ui->textEdit->toPlainText());

mam w
k.....n
k.....n
@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);
trebeter
trebeter Autor
0
@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
k.....n
k.....n
@trebeter: no to dokładnie ten kod co podałem to robi ;)
https://www.youtube.com/watch?v=poz7RXJQf7k
trebeter
trebeter Autor
0
@kradzionyLogin: nie o to mi chodzi, już ci wklejam zdjęcia
trebeter
trebeter Autor
0
trebeter
trebeter Autor
0
trebeter
trebeter Autor
0
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
k.....n
k.....n
@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
k.....n
k.....n
@trebeter: filterTable to metoda-SLOT:

connect(ui->textEdit, textEdited(QString)), this, SLOT(filterTable(QString)));
trebeter
trebeter Autor
0
@kradzionyLogin: dziękuję za pomoc
dużo mi pomogłeś