Python 3.2中无法识别pyodbc“commit”命令

时间:2013-01-25 10:05:53

标签: python pyodbc

有没有人用Python 3.2安装了pyodbc? 我有,一切都很好,除了解释器不识别“commit()”。 其他人有同样的问题吗? 谁知道我做错了什么? 谢谢, 约翰R

2 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。仍然无法使commit()工作但是在pyodbc.connect()函数中,如果包含“autocommit = True”,则所有插入都会自动提交,您不需要使用commit()函数。 e.g。

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

答案 1 :(得分: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()