Я использую eric4 (qtdesigner, pyqt, python и т. Д.) С sqlite и получаю «параметр привязки ошибки 0 - возможно, неподдерживаемый тип» при запуске программы, которую я кодировал.
Я создал несколько графических интерфейсов с использованием eric4 + qtdesigner и сгенерировал диалоговые коды.Когда нажата одна из кнопок окон, которые я сделал в qtdesigner, он должен получить доступ к базе данных, а затем зафиксировать и сохранить информацию в базе данных.Я создал отдельный py-файл для доступа к базе данных и ее сохранения.
Вот части моего кода, которые, скорее всего, являются источником ошибки, которую я продолжаю получать.
В сгенерированном диалоговом окнепользовательский интерфейс (который я импортировал отдельный файл py):
def on_button_Save_released(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
Nik = self.LineEdit_Nickname.text()
NFirst = self.LineEdit_NameFirst.text()
NMid = self.LineEdit_NameMiddle.text()
NLast = self.LineEdit_NameLast.text()
BMon = self.ComboBox_BirthMonth.currentText()
BDay = self.ComboBox_BirthDay.currentText()
BYear = self.ComboBox_BirthYear.currentText()
CNum = self.LineEdit_ContactNum.text()
EM = self.LineEdit_EMail.text()
MAd = self.LineEdit_MailAdd.text()
self.NMem = NewMem()
self.NMem.input_data(Nik, NFirst, NMid, NLast, BMon, BDay, BYear, CNum, EM, MAd)
И это при доступе и записи в базе данных, которая находится в отдельном файле py:
import sqlite3
import datetime, time
con = sqlite3.connect("Members.db") #access database
cur = con.cursor() #cursor object for database
class NewMem:
def input_data(self, Nik, NFirst, NMid, NLast, BMon, BDay, BYear, CNum, EM, MAd):
def adapt_datetime(ts):
return time.mktime(ts.timetuple())
#Get current time and date
sqlite3.register_adapter(datetime.datetime, adapt_datetime)
now = datetime.datetime.now()
#created if first time to make a table
try:
cur.execute('create table Members (ID integer primary key autoincrement not null, Nick string not null, NameFirst string, NameMiddle string, NameLast string, BirthMonth string, BirthDay string, BirthYear string, ContactNum string, EMail string, MailAdd string, MemberSince string)')
except:
pass
cur.execute("insert into Members (Nick,NameFirst,NameMiddle,NameLast,BirthMonth,BirthDay,BirthYear,ContactNum,EMail,MailAdd,MemberSince) values (?,?,?,?,?,?,?,?,?,?,?)",(Nik, NFirst, NMid, NLast, BMon, BDay, BYear, CNum, EM, MAd, now))
con.commit()
cur.close()
con.close()
Я прочиталнекоторые поиски в Google, что это может быть кавычки и?параметры, но я проверил, и они верны, кажется.Также читайте где-нибудь, что это имеет отношение к карте символов (UTF?), Но я, честно говоря, не знаю, как это проверить ... Я также добавил некоторые распечатки, чтобы увидеть, показывают ли они правильные данные, которые я ввел, иони верны.Так что довольно удивительно, почему я все еще получаю сообщение об ошибке.
Любая помощь очень ценится глубоко кланяется