2013-01-25 52 views
0

是否有人使用Python 3.2安裝pyodbc? 我有,除了解釋器不識別「commit()」以外,一切都很好。 其他人都有同樣的問題? 任何人都知道我是否做錯了什麼? 謝謝, 約翰R在Python 3.2中無法識別pyodbc「commit」命令

+0

您可以張貼在您使用'提交()的代碼'?這個方法在Connection對象上調用,而不是在遊標中 - 這可能是問題所在。 –

+0

[pyodbc 3.0.6](http://code.google.com/p/pyodbc/wiki/ReleaseNotes#3.0.6_-_2012-06-25)爲遊標添加了'commit'和'rollback'方法。 – Bryan

回答

0

這裏是我的代碼使用的commit()的例子:

cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=F:\\computing\\Payroll v2 2\\\employees.accdb') 
    cursor = cnxn.cursor() 
    cursor.execute("insert into Medication(ID, Doctor, NameOfMedication, Dosage, DateStart, DateEnd, Notes, LastUpdated) values (?,?,?,?,?,?,?,?)",self.ui.residentComboBox.currentText().split()[0], self.ui.doctorLineEdit.text(), self.ui.nameOfMedicationLineEdit.text(), self.ui.dosageLineEdit.text(), self.ui.dateStartDateEdit.text(), self.ui.dateEndDateEdit.text(), self.ui.notesTextEdit.document().toPlainText(), self.ui.lastUpdatedDateTimeEdit.dateTime().toString("dd/MM/yyyy, hh:mm:ss")) 
    cursor.execute("update Medication set MedEndMonth=? where ((ID=?)) ",month,resID)     
    cnxn.commit() 
    self.close() 
0

我找到了一個方法。仍然無法讓commit()工作,但在pyodbc.connect()函數中,如果包含「autocommit = True」,則所有插入都會自動提交,並且不需要使用commit()函數。例如

conx = pyodbc.connect("""Driver={Microsoft Access Driver (*.mdb, *.accdb)}; 
         DBQ=C:\Documents and Settings\Owner\My Documents\ 
         Database2.accdb;""", autocommit = True)