2

私はこのpyodbcドライバーエラーを受け取り続けます、そして私はそれをまったく修正することができません誰かが助けることができますか?私はデータリポジトリとして機能するためにマイクロソフトアクセスでpyqt4を使用しています。危険なインデントは無視してください。

これが私のエラーです:

Traceback (most recent call last):
File "F:\computing\Payroll v2 2\mainwindow.py", line 53, in loadUpcomingBirthdaysForm
self.ui.upcomingBirthdaysForm = UpcomingBirthdays.UpcomingBirthdays()
File "F:\computing\Payroll v2 2\UpcomingBirthdays.py", line 22, in __init__
cursor.execute("select Forename,Surname,DOB from employees where (DOB=?))",9)
pyodbc.Error: ('HYC00', '[HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented  (106) (SQLBindParameter)')

これが私のコードです:

from PyQt4 import uic
from PyQt4 import QtCore,QtGui
import validation
import pyodbc
import datetime

( Ui_UpcomingBirthdays, QMainWindow ) = uic.loadUiType( 'UpcomingBirthdays.ui' )

class UpcomingBirthdays ( QMainWindow ):
"""Upcoming Birthdays inherits QMainWindow"""

def __init__ ( self, parent = None ):
    QMainWindow.__init__( self, parent )
    self.ui = Ui_UpcomingBirthdays()
    self.ui.setupUi( self )
    today = datetime.date.today()
    thismonth= int(today.strftime("%m")[0:2])
    thisday= int(today.strftime("%d")[0:2])
    cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=F:\\computing\\Payroll v2 2\\employees.accdb')
    cursor = cnxn.cursor()
    cursor.execute("select Forename,Surname,DOB from employees where (DOBmonth=?))",thismonth)
    residentList = cursor.fetchall()
    cnxn.close()
    self.ui.residentTableWidget.setRowCount(0)
    for item in residentList:
        print (item)
        rowcount = self.ui.residentTableWidget.rowCount()
        self.ui.residentTableWidget.insertRow(rowcount)
        self.ui.residentTableWidget.setItem(rowcount,0,QtGui.QTableWidgetItem(str(item[0])))
        self.ui.residentTableWidget.setItem(rowcount,1,QtGui.QTableWidgetItem(str(item[1])))
        self.ui.residentTableWidget.setItem(rowcount,2,QtGui.QTableWidgetItem(str(item[2])))







def __del__ ( self ):
    self.ui = None
4

1 に答える 1

3

私はそれを理解しました、障害は次の行にあります:

cursor.execute("select Forename,Surname,DOB from employees where (DOBmonth=?))",thismonth)

「今月」の変数を文字列に変更する必要があります。

str(thismonth))
于 2013-03-25T16:33:43.043 に答える