Ich arbeite mit MySQL 5.0....
Bis jetzt habe folgende Fortschitte gemacht:
Ich habe die bereits beschriebene Methode abgeändert. Bei jeden Click in die QTableView wird der entsprechenden TimeStamp des Index geändert:
Code: Alles auswählen
void epconfigurator::changeTime(const QModelIndex index)
{
QSqlRecord record = OnlineModel->record(index.row());
record.setValue (2,"UNIX_TIMESTAMP()" ); // Option 1
//record.setValue (2,"666" ); // Option 2
OnlineModel->setRecord (index.row(),record );
}
Natürlich ist dies nicht im Sinne des Erfinders.
Der Eintrag in die DB erfolgt zwar, jedoch wird die TimeStamp Spalte auf 0 gesetzt.
Wie könnte ich einen Workaround bewerkstelligen, wenn UNIX_TIMESTAMP() anscheinend nicht als SQL Befehl gesetzt wird?
Ich dreh mich seit 2 Tagen im total im Kreis.
Habe mittlerweile ein totales Verständnisproblem:
Wie funktioniert die Abarbeitung bei SQLModel?
QTabelview -> dataChanged -> QSqlTableModel->updateRowInTable() ????
Welches Signal wird gesendet, wenn der Content der QTableView bzw. QSqlTableModel geändert wird?
Weiters habe ich auch versucht auf die updateRowInTable Methode zuzugreifen, .....
leider scheiter ich da noch an den Basics. Muss wohl noch eine Menge C++ lernen.
Code: Alles auswählen
class MyQSqlTableModel : public QSqlTableModel
{
public:
MyQSqlTableModel();
~MyQSqlTableModel();
private slots:
void updateRowInTable ( int row, const QSqlRecord & values );
};
Fehler:
/epconfigurator.h:45: error: conflicting return type specified for 'virtual void MyQSqlTableModel::updateRowInTable(int, const QSqlRecord&)'
/usr/include/qt4/QtSql/qsqltablemodel.h:126: error: overriding 'virtual bool QSqlTableModel::updateRowInTable(int, const QSqlRecord&)'
Fehlermeldung ist mir klar, nur wie ich meine Klassen definieren muss nicht!