Найти - Пользователи
Полная версия: QtSql как удалить нужную запись
Начало » GUI » QtSql как удалить нужную запись
1 2 3
apologize828
Номер выбраного столбца. Использовать его для SQL можно примерно так (только что придумал, не судите строго):
    row = view1.currentIndex().row()
modelIndex = view1.currentIndex()
modelIndex = modelIndex.sibling(row,0)
id = view1.model().data(modelIndex).toString()
Спасибо! то что надо))Вот погуглил тут еще и нашел такую вещь:
http://www.prog.org.ru/topic_7078_0.html;wap2
Там смысл такой же,так что кто захочет пусть заценит
Кстати ты не читал книгу “Совершенный код” (Стив Макконнел). Очень рекомендую, она вобщем про принципы программирования.
Надо будет читануть как время будет! просто времени катастрафически нехватает на все(((
apologize828
Появился вопрос по типам DATE и TIME. В базе есть таблица допустим с полями(dates DATE,times TIME) и есть форма на которой могу добавить дату и время из QDateEdit и QTimeEdit.
Пишу так:
def add_sale(self):
f=self.add_s.my_date.text()
g=self.add_s.my_time.text()

query=QtSql.QSqlQuery()
query.exec("INSERT INTO sale(dates,times) VALUES(:d,:t)")
query.bindValue(":d",f)
query.bindValue(":t",g)
query.exec_()

self.refresh_table_sale()
self.add_s.hide()
print(f)
print(g)
И не добавляет ничего и ошибку не кидает даже.Зато в консоль выводит норм,может тут надо брать не text() (с этими типами так не покатит?) а че-то другое?
apologize828
Решил попробовать преобразовать типы короче масло-масляное,но тоже не работает(((Хотя в консоли опять все норм!
def add_sale(self):
f=self.add_s.my_date.date().year()
g=self.add_s.my_date.date().month()
h=self.add_s.my_date.date().day()
dat=datetime.date(f,g,h)

f1=self.add_s.my_time.time().hour()
g1=self.add_s.my_time.time().minute()
tim=datetime.time(f1,g1)

query=QtSql.QSqlQuery()
query.exec("INSERT INTO sale(dates,times) VALUES(:d,:t)")
query.bindValue(":d",dat)
query.bindValue(":t",tim)
query.exec_()

self.refresh_table_sale()
self.add_s.hide()
P.S. Всегда парился при работе с базой с типами дата и время(((
dartNNN
Блин, и откуда ты такое колдовство берешь? У меня первый вариант работает без всяких нареканий (второй не пробовал). После query.exec_() напиши print(query.lastError().text()), если выведет пустую строку, значит инсерт проходит и надо искать ошибку в self.refresh_table_sale().
apologize828
dartNNN
Блин, и откуда ты такое колдовство берешь? У меня первый вариант работает без всяких нареканий (второй не пробовал). После query.exec_() напиши print(query.lastError().text()), если выведет пустую строку, значит инсерт проходит и надо искать ошибку в self.refresh_table_sale().
Люблю мыслить не как все, пусть даже и бредово)))
Я тоже сразу решил что косяк в refresh но че там ничего не нашел))
фух спасибо очень помогло вот это:
print(query.lastError().text())
отловил Parameter count mismatch и сразу все решилось)))))))
P.S. Отловка ошибок святое дело,обязательно учту на будущее
Да и если сделать str(dat) str(tim) то мой бред тоже канает))))Просто там даты по другому (2010-01-01) вместо(01.01.2010)
Хотя стоит читать доки и юзать Designer и тогда бы я раньше узнал что есть такое:
self.my_date.setDisplayFormat("yyyy-MM-dd")
и тогда бы не пришлось придумывать такой бред))
qman
apologize828
Как добавлять записи в QTableView я разобрался
Поделись пожалуйста рабочим кодом по использованию QTableView.
СПАСИБО
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB