pyodbc "commit" 命令在 Python 3.2 中未被识别
有没有人用Python 3.2安装过pyodbc? 我安装了,其他都没问题,就是解释器不认识“commit()”这个命令。 有没有人遇到过同样的问题? 有人知道我是不是哪里做错了? 谢谢, 约翰·R
2 个回答
1
我找到了一种解决办法。虽然还是没法让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)
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()