Почему я получаю ошибку параметра в моем обновлении sql? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытался использовать SQL с PYQT4 для обновления базы данных доступа информацией, введенной пользователем в мою программу. Я не хочу обновлять все записи только конкретной записи и определенного количества столбцов (5 из 10 столбцов). Тем не менее, я получаю сообщение об ошибке:

"pyodbc.Error: ('07002', '[07002] [Microsoft] [ODBC Microsoft Access Водитель] Слишком мало параметров. Ожидается 6. (-3010) (SQLExecDirectW) ') "

Я не могу решить это.

Вот мой код:

SelectDatabase.execute('UPDATE Order_Table SET DateDue=(dateDueString), TimeDue=(timeDueString), PaymentType=(paymentExp), Paid=(paidExp), Customer_ID=(customerExp) WHERE OrderLine_ID=(orderlineExp)') 

Значения в скобках - это переменные, которые я создал, и я пытаюсь их вызвать, я проверял их несколько раз, включая проверку орфографии, и я не могу найти проблему в этом отношении.

Если у кого-то есть идеи или нужна дополнительная информация, пожалуйста, дайте мне знать.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Мне удалось выяснить проблему.Я пытался использовать переменную в своем SQL, которая сразу после форматирования работала по-другому, вот что я изменил.

  SelectDatabase.execute('UPDATE Order_Table SET DateDue=?, TimeDue=?, PaymentType=?, Paid=?, Customer_ID=? WHERE OrderLine_ID=?', dateDueString,timeDueString,paymentExp,paidExp,customerExp,orderlineExp)

Таким образом, меняя значения на неизвестные внутри процедуры SQL и ссылаясь на них.они по порядку после редактирования позволяли находить строковые значения переменных и корректные столбцы для редактирования.

Спасибо за попытку помочь.

0 голосов
/ 15 ноября 2018

Ну, я думаю, вам нужно сначала создать хранимую процедуру в SQL со всеми параметрами, а затем просто вызвать ее.

Exec dbo.mYParameter 'timeDueString','paymentExp','paidExp','customerExp','orderlineExp'
...