Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
DarthBane |
8.8.2012, 11:56
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.8.2012 Пользователь №: 3474 Спасибо сказали: 0 раз(а) Репутация: 0
|
Стоит такая задача - журнал учета пользователей. Есть таблица в бд, с id записи, именем, датой и временем входа, которые заполняются пр иавторизации. Надо сделать следующее, при выходе из проги, в таблице заполнять поле даты выхода текущим временем, и заполнять соответственно последнюю строку. Я написал такой код, но у меня ничего не выходит((
И в консоли такая ошибка: QSqlQuery::value: not positioned on a valid record "Невозможно сделать вставку" QSqlError(1, "Unable to execute statement", "near "where": syntax error") |
|
|
|
|
Iron Bug |
8.8.2012, 12:02
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
last_insert_rowid() в SQLite даёт последний вставленный id в текущем коннекте. если коннект переоткрывался - там будет ноль.
проверь, что ты не отключаешься от базы. лучше этот id сразу вычитывать, после вставки новой записи. |
|
|
|
|
balbes |
8.8.2012, 12:05
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 62 Регистрация: 11.10.2007 Пользователь №: 10 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(DarthBane @ 8.8.2012, 12:56) Link QString query_journ_select ="UPDATE work_journal SET exit_time='%1' where id='%2'"; перед where не нужна запятая, о чем тебе и сообщает QSqlError.Добавь везде где можно проверку на возврат ошибки... |
|
|
|
|
DarthBane |
8.8.2012, 12:41
Сообщение
#4
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.8.2012 Пользователь №: 3474 Спасибо сказали: 0 раз(а) Репутация: 0
|
Да нет, я нигде не отключаюсь от базы впринципе
|
|
|
|
|
ViGOur |
8.8.2012, 13:19
Сообщение
#5
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(balbes @ 8.8.2012, 13:05) Link перед where не нужна запятая, о чем тебе и сообщает QSqlError. |
|
|
|
|
DarthBane |
8.8.2012, 13:28
Сообщение
#6
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.8.2012 Пользователь №: 3474 Спасибо сказали: 0 раз(а) Репутация: 0
|
Убрал запятую, все равно пусто в меседж боксе( а в консоли ошибка:
|
|
|
|
|
ViGOur |
9.8.2012, 9:52
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(balbes @ 8.8.2012, 13:05) Link Добавь везде где можно проверку на возврат ошибки... Вот именно это ты пропустил.Что у тебя возвращает lastId.prepare? Что у тебя возвращает lastId.exec? Если ошибки, то описание ошибок... |
|
|
|
|
DarthBane |
9.8.2012, 10:06
Сообщение
#8
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.8.2012 Пользователь №: 3474 Спасибо сказали: 0 раз(а) Репутация: 0
|
Фуф. проблему решил, надо было query.next() нехватало. Может кому поможет в дальнейшем:
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 13:27 |