pyodbc "commit" 命令在 Python 3.2 中未被识别

0 投票
2 回答
884 浏览
提问于 2025-04-17 13:38

有没有人用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()

撰写回答