Команда фиксации pyodbc не распознается в Python 3.2

Кто-нибудь установил pyodbc с Python 3.2? У меня есть, и все хорошо, за исключением того, что интерпретатор не распознает "commit()". У кого-нибудь еще есть такая же проблема? Кто-нибудь знает, если я делаю что-то не так? Спасибо, Джон Р.


person John of York    schedule 25.01.2013    source источник
comment
Не могли бы вы опубликовать код, где вы используете commit()? Этот метод вызывается для объекта Connection, а не для курсора — возможно, проблема в нем.   -  person A. Rodas    schedule 12.03.2013
comment
pyodbc 3.0.6 добавлен commit и rollback методы для курсоров.   -  person Bryan    schedule 26.03.2013


Ответы (2)


вот пример моего кода с использованием 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()
person Thomas    schedule 07.04.2013

Я нашел способ обойти это. Все еще не удалось заставить 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)
person John of York    schedule 25.01.2013