Dlaczego ta funkcja zwraca NULL -.-

Dlaczego ta funkcja zwraca NULL -.-
XE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Witam, może ktoś zobaczy to co mi umyka, mimo wszelakich starań funkcja ta zwraca nadal NULLA ( w bazie są i nulle i zwykłe)

Kopiuj
QDate Product::nearestDate()
{
    dbManager->imageTableModel("supplydates");
    dbManager->m_Filter("productid="+QString::number(prodid));
    dbManager->setSort(1);
    int max = mymodel->rowCount();
    for(int i=0;i<max;i++)
        if(dbManager->getSqlTableModel()->record(i).value("date").toDate().isNull()) continue;
        else return dbManager->getSqlTableModel()->record(i).value("date").toDate();
}

Używam ją potem np. tutaj

Kopiuj
QDate current = QDate::currentDate();
    toDate = current.daysTo(nearestDate());

i zwraca ona 0.0.0

A dziwne to wgl, bo mając jeszcze taką funkcję

Kopiuj
bool DbManager::editProduct(const QByteArray &imgData, const QString &nm, const QString &nt, const int &kc,
                            const int &car, const int &pro, const int &fat, const int &wei, const QDate &dat,
                            const int &typ, int id)

edytującą w bazie danych, do której idzie m.in. ta funkcja nearestDate()

Kopiuj
if(dbManager->editProduct(product.getImageToByteArray(),product.getName(),product.getNotes(),product.getKcal(),
                                  product.getCarbonates(),product.getProteins(),product.getFats(),
                                  product.getWeight(),product.nearestDate(),product.getType(),id))

pokazuje mi się mimo wielu edycji i dodawania nowych dat ta sama - 2021-01-01

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

Jesteś pewien, że nie masz UB, bo nie obsługujesz przypadku nieznalezienia poprawnej daty?

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0

Bez klamerek takie teoretycznie holistyczne wyrazenia jak if+else sie poprawnie interpretuja? Ja bym tutaj chociaz dla czytelnosci dodal...

XE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Haha mam to. Brakło selecta do tableModela :D

Kopiuj
    dbManager->refresch(); 

Godzina ślęczenia nad tak idiotycznym błędem -.- Mimo wszystko dziękuję za chęci wszystkim

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.