我一直在尝试将SQL与PYQT4一起使用,以使用用户输入到我的程序中的信息更新访问数据库。我不想只更新一个特定的记录和特定数量的列(10列中的5列(来更新所有记录。然而,我一直收到一个错误,上面写着:
"pyodbc错误:('07002','[07002][Microsoft][ODBC Microsoft AccessDriver]参数太少。应为6。(-3010((SQLExecDirectW('(">
我似乎无法解决它。
这是我的代码:
SelectDatabase.execute('UPDATE Order_Table SET DateDue=(dateDueString), TimeDue=(timeDueString), PaymentType=(paymentExp), Paid=(paidExp), Customer_ID=(customerExp) WHERE OrderLine_ID=(orderlineExp)')
括号内的值是我创建的变量,我正试图调用它们,我已经对它们进行了多次校对,包括拼写检查,但我找不到这方面的问题。
如果有人有任何想法或需要更多信息,请告诉我。
我已经设法解决了这个问题。我试图在我的SQL中使用一个变量,一旦我用不同的格式直接工作,这就是我把它改成的。
SelectDatabase.execute('UPDATE Order_Table SET DateDue=?, TimeDue=?, PaymentType=?, Paid=?, Customer_ID=? WHERE OrderLine_ID=?', dateDueString,timeDueString,paymentExp,paidExp,customerExp,orderlineExp)
通过在SQL过程中将值更改为未知值,并在编辑后按顺序引用它们,可以找到变量的字符串值和编辑正确的列。
谢谢你的帮助。
我想你需要先在SQL中创建带有所有参数的存储过程,然后简单地调用它。
Exec dbo.mYParameter 'timeDueString','paymentExp','paidExp','customerExp','orderlineExp'