Qt - jak prawidłowo podać argument w funkcji QSqlDatabase::primaryIndex ?

0

Niby trywialne zadanie ale chyba nie takie oczywiste... przeglądam dokumentację QSqlDatabase i chcę użyć funkcji primaryIndex

QSqlIndex primaryIndex(const QString &tablename) const

niby w opisie jest napisane, że funkcja ta przyjmuje argument typu const QString który ma odzwierciedlać nazwę tablicy w bazie danych, tylko problem jest taki, że po wpisaniu różnych kombinacji kompilator wywala błędy

Calling 'primaryIndex' with incomplete return type 'QSqlIndex'

a argument podaję w taki sposób:

db.primaryIndex("tPracownicy");

lub

const QString tbName="tPracownicy";
db.primaryIndex(tbName);

lub

db.primaryIndex(QString("tPracownicy"));

I wszystkie podane argumenty podane są źle, czy wie ktoś o co tutaj chodzi ?

0

poradziłem sobie, problem okazał się śmieszny wystarczyło dołączyć nagłowek

#include <QSqlIndex>
0
zkubinski napisał(a):

poradziłem sobie, problem okazał się śmieszny wystarczyło dołączyć nagłowek

Śmieszne było już postawienie pytania o argument (któremu zaprzeczało rozwiniecie wątku)

0
zkubinski napisał(a):

Calling 'primaryIndex' with incomplete return type 'QSqlIndex'

Ten błąd powinieneś widzięć często. Oznacza po prostu, że QSqlIndex został zadeklarowany wyprzedzająco ("forward declaration") w jakimś nagłówku i brakuje jego definicji.
Rozwiązanie jest zawsze to samo dodać do pliku cpp #include nagłówka, który zawiera definicję.
Niech cię nie kłusi wstawianie tego do pliku nagłówkowego, bo to bardzo spowalnia budowanie projektu. Im większy projekt tym bardziej. Dla małych projektów (używanych do nauki) jest to niezauważalne.
Polecam doczytać po co stosuje się "forward declaration" i używać gdziekolwiek się da.

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