Dlaczego ta funkcja zwraca NULL -.-

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)

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

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

i zwraca ona 0.0.0

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

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()

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

1

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

0

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

0

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

    dbManager->refresch(); 

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1