def insert_row(self): record = QtSql.QSqlRecord() record.append(QtSql.QSqlField('id', QtCore.QVariant.Int)) record.append(QtSql.QSqlField('rfid_id', QtCore.QVariant.String)) record.append(QtSql.QSqlField('description', QtCore.QVariant.String)) record.setValue('id', 0) if self.onEvents: record.append(QtSql.QSqlField('date', QtCore.QVariant.DateTime)) record.setValue('date', QDateTime.currentDateTime()) record.setValue('rfid_id', self.label_2.text()) else: if self.rfidIDField.text().strip(" ") == "": QMessageBox.warning( self, 'Error!', "Need to fill ID of marker field to insert new marker.") return query = QSqlQuery(self.db) query.prepare("SELECT * FROM markers WHERE rfid_id = :rfid_id") query.bindValue(":rfid_id", self.rfidIDField.text().strip(" ")) query.exec() found = query.next() if found: QMessageBox.warning(self, 'Error!', "Marker with such id already exists.") return record.setValue('rfid_id', self.rfidIDField.text().strip(" ")) self.tableModel.insertRecord(-1, record) self.tableModel.select()
def record(self, rowIndex): rec = super().record(rowIndex) self.calculateExtraColumns(rowIndex) for col in self.headerList: newField = QtSql.QSqlField(col) newField.setValue(self.cache[col]) rec.append(newField) return rec