Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Mapy obiektów czy lista pobierana bezpośrednio z bazy

Kolejny raz będę truł o tym programiku co go właśnie robię. Zastanawiam się nad kwestią techniczną. Kwestią z pogranicza porządku kodu i jego wydajności.

Otóż z początku uzupełniałem główną tablicę zleceń bezpośrednio z bazy.



QSQlQuery query(db);
query.prepare("select * from zlecenia where id = 1;");
query.exec();
while(query.next()){
  ui->tablica->item(row,col,new QTableWidgetItem(query.value(0).toString());
}

Oczywiście powyższy kod zmodyfikowałem, żeby nie wypisywać całej tabeli i nie tworzyć pętli w pętli. Tak było do tej pory. Teraz Każda komórka odpowiada za cechę danego obiektu. I tak z bazy do wektora przekazywane są identyfikatory (id) zleceń odpowiadających aktualnemu filtrowi.



QVector <int> idZlec;
query.exec("select id from zlecenie where 1;");
while(query.next()){
  idZlec.append(query.value(0).toInt());
}
QMap <int,Zlecenie *> Zlecenia;
for(QVector <int>::iterator iter=idZlec.begin();iter != idZlec.end();++iter){
  Zlecenia.insert(*iter,Zlecenie(db,*iter);
}

A do tablicy jest wysyłane tak



for(QMap <int,Zlecenie *>::iterator iter = Zlecenia.begin();iter != Zlecenia.end();++iter){
  ui->zlecenia->item(row,col,new QTableWidgetItem(iter.value->pokazWartosc));
}

I sam nie wiem czy się czasem nie zapędziłem z tym wszystkim. Z jednej strony chcę dorobić filtrowanie a'la QHash gdzie kluczem będzie wartość (np klient, model) a wartością id zlecenia. Potem na podstawie filtrowania zostanie utworzona druga tabela. Także to co do tej pory zrobiłem przyda się. Ale z drugiej strony może po prostu na żywca pobierać dane z tabeli.

W tabeli na razie jest ok 20 rekordów. Ale co będzie gdy to wzrośnie np do 200 czy 20000? QHash z taką liczbą to też zapotrzebowanie na pamięć. Sam na razie nie wiem jak to rozwiązać.

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 8 lutego 2017 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony