исключение несоответствия при запросе.выполнить() python

#python #exception #insert #execute #mismatch

Вопрос:

Я попытался вставить строку в свою базу данных SQLiteDatabase с помощью этого кода:

         query = QtSql.QSqlQuery()
        query.prepare('insert into rutas '
                      '(matricula, conductor, fecha, kmIn, kmFin, ,kmTotal, tarifaKm, tarifaTotal) '
                      'VALUES (:matricula, :conductor, :fecha, :ki, :kf, :kt, :tkm, :tt)')

        query.bindValue(":matricula", str(newRuta[0]))
        query.bindValue(":conductor", str(newRuta[1]))
        query.bindValue(":fecha", str(newRuta[2]))

        query.bindValue(":ki", int(newRuta[3]))
        query.bindValue(":kf", int(newRuta[4]))
        query.bindValue(":kt", int(newRuta[5]))

        query.bindValue(":tkm", float(newRuta[6]))
        query.bindValue(":tt", float(newRuta[7]))

        if query.exec_():

            QtWidgets.QMessageBox.information(None, 'Alta Ruta Correcta', 'Haga Click para Continuar')

        else:

            QtWidgets.QMessageBox.warning(None, query.lastError().text(), 'Haga Click para Continuar')
 

Когда программа достигает query.exec() метода, она всегда переходит к else предложению, показывающему эту ошибку:

ошибка

newRuta это массив, в который я помещаю свои значения, и я уже проверил, что newRuta он хорошо работает.

Комментарии:

1. kmFin, ,kmTotal — двойные запятые намеренны?

2. Большое спасибо!

Ответ №1:

Вы удвоили запятые между kmFin и kmTotal .

 query.prepare('insert into rutas '
                      '(matricula, conductor, fecha, kmIn, kmFin, ,kmTotal, tarifaKm, tarifaTotal) '
                      'VALUES (:matricula, :conductor, :fecha, :ki, :kf, :kt, :tkm, :tt)')
 

должно быть

 query.prepare('insert into rutas '
                      '(matricula, conductor, fecha, kmIn, kmFin, kmTotal, tarifaKm, tarifaTotal) '
                      'VALUES (:matricula, :conductor, :fecha, :ki, :kf, :kt, :tkm, :tt)')