Я пишу программу на pygtk с sqlite в качестве базы данных, я успешно создал базу данных с одной таблицей и шестью столбцами, используя:
cur.execute('''CREATE TABLE IF NOT EXISTS tabl (
Id INTEGER PRIMARY KEY, Name TEXT, Condition TEXT, Medicine TEXT,
Age TEXT, Date DATE)''')
Я вставляю в него значения, используя:
def save(Name, Age, Condition, Medicine):
T = [(Name).title(),(Age).title(),(Condition).title(),(Medicine).title()]
conn = sqlite3.connect('patients.db')
cur = conn.cursor()
conn.text_factory = str
cur.execute('INSERT INTO tabl (Name,Condition,Medicine, Age,Date) VALUES (?,?,?,?,date("now"))',(T))
Значения предоставляются графическим интерфейсом.
Теперь у меня есть поле со списком в диалоге поиска, которое я буду использовать, чтобы указать, какой тип поиска (имя, возраст, дата или условие), поэтому я использовал для этого индекс выбранного элемента, это основной модуль. :
def find(self,widget):
index = self.comboBy.get_active()
nameU = self.entryFor.get_text()
name = nameU.title()
names = database.findItem(name,index)
и вот база данных. FindItem:
namen = name.title()
if index == 0:
print index
cur.execute("SELECT * FROM tabl WHERE Name=?",[namen])
elif index == 1:
print index
cur.execute("SELECT * FROM tabl WHERE Age=?",[namen])
elif index == 2:
print index
cur.execute("SELECT * FROM tabl WHERE Date=?",[namen])
else:
print index
cur.execute("SELECT * FROM tabl WHERE Condition=?",[namen])
list = cur.fetchall()
print list
return list
, который работает только при указании имени, печатает индекс 0 и получает правильный список,
но при попытке с другим столбцом, таким как условие, он возвращает пустой список [], хотя он печатает правильный индекс и видит правильный столбец, я запутался, пожалуйста, помогите.