Datenbank: rowCount() liefert 0
-
Hallo,
ist das normal das rowCount() (der Klasse QSqlTableModel) immer den Wert 0 liefert?
ich erstelle einen neuen Datensatz an das Ende mit folgendem Code:int anzahl; anzahl = tabellenmodell->rowCount(); tabellenmodell->insertRow(anzahl);
Jedoch liefert mir rowCount() immer den Wert 0. Und komischerweise funktioniert es trotzdem, es werden neue Datensätze angehängt!
Ich habe es auch schon mal versucht indem ich der anzahl-Variable den Wert 0 zu weise anstatt tabellenmodell->rowCount(), und das funktioniert auch. Ich kann mir das einfach nicht erklären. Kann mir bitte jemand helfen?ich benutze Qt
-
http://doc.qt.io/qt-5/qsqltablemodel.html#select
Mehr kann man nicht sagen, da zu wenig informationen da sind.
Es fehlt ein minimales, übersetzbares Beispiel, welches das Problem zeigt
-
Hallo und danke für deine Antwort.
ich habe das Projekt hochgeladen:
https://www.file-upload.net/download-13130587/datenbank.rar.htmlDie entsprechende Zeile habe ich im Code kommentiert.
Die db-Datei musst du nur noch unter c:\sqlite ablegen oder halt den Code anpassen. Danke voraussichtlich für deine Bemühungen
-
s. QAbstractItemModel::rowCount
Note: When implementing a table based model, rowCount() should return 0 when the parent is valid.
-
Sorry aber ich kann das nicht ganz nachvollziehen. Wie kannn denn ein Datensatz hinzugefügt werden ohne der richtigen Nummer?
Wenn jetzt in der Zeile
tabellenmodell->setData(tabellenmodell->index(anzahl, 1), ui->Name->text());
die Variable "anzahl" immer "0" liefert, dann würde doch der neue Eintrag immer im ersten Datensatz hinterlegt werden, oder nicht?
Bitte berichtigt mich