Уведомления

Группа в Telegram: @pythonsu

#1 Март 27, 2010 13:35:27

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

Номер выбраного столбца. Использовать его для 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
Там смысл такой же,так что кто захочет пусть заценит
Кстати ты не читал книгу “Совершенный код” (Стив Макконнел). Очень рекомендую, она вобщем про принципы программирования.
Надо будет читануть как время будет! просто времени катастрафически нехватает на все(((



Офлайн

#2 Март 28, 2010 14:37:16

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

Появился вопрос по типам 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() (с этими типами так не покатит?) а че-то другое?



Отредактировано (Март 28, 2010 14:39:49)

Офлайн

#3 Март 28, 2010 18:48:49

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

Решил попробовать преобразовать типы короче масло-масляное,но тоже не работает(((Хотя в консоли опять все норм!

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. Всегда парился при работе с базой с типами дата и время(((



Офлайн

#4 Март 29, 2010 11:04:08

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

Блин, и откуда ты такое колдовство берешь? У меня первый вариант работает без всяких нареканий (второй не пробовал). После query.exec_() напиши print(query.lastError().text()), если выведет пустую строку, значит инсерт проходит и надо искать ошибку в self.refresh_table_sale().



Офлайн

#5 Март 29, 2010 13:33:23

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

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")
и тогда бы не пришлось придумывать такой бред))



Отредактировано (Март 29, 2010 15:07:04)

Офлайн

#6 Ноя. 17, 2010 19:45:37

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

QtSql как удалить нужную запись

apologize828
Как добавлять записи в QTableView я разобрался
Поделись пожалуйста рабочим кодом по использованию QTableView.
СПАСИБО



Отредактировано (Ноя. 17, 2010 19:55:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version