crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Работа с БД
gpepsi
  опции профиля:
сообщение 17.1.2012, 21:11
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 31.3.2010
Пользователь №: 1582

Спасибо сказали: 0 раз(а)




Репутация:   0  


После выполнения запроса можно разбирать QSqlQuery или получить QSqlRecord

1. А можно ли не используя модели вставить QSqlRecord
2. Можно ли как после вставки записи получить id записи в БД
3. Можно ли сделать как в QMap, т.е. если нету запи по определенному значению, то вставить с нужными значениями, а остальные поля пусть будут по-умолчанию
(что-то вроде INSERT c опциональными полями)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloiia
  опции профиля:
сообщение 18.1.2012, 13:16
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 5.5.2011
Пользователь №: 2655

Спасибо сказали: 5 раз(а)




Репутация:   0  


На второй вопрос ответ сразу напрашивается http://doc.crossplatform.ru/qt/4.6.x/qsqlq...ml#lastInsertId
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2012, 13:30
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(gpepsi @ 17.1.2012, 23:11) *
2. Можно ли как после вставки записи получить id записи в БД
QVariant QSqlQuery::lastInsertId () const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloiia
  опции профиля:
сообщение 18.1.2012, 19:24
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 5.5.2011
Пользователь №: 2655

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(gpepsi @ 17.1.2012, 22:11) *
1. А можно ли не используя модели вставить QSqlRecord


а вот тут что-то непонятно. куда вставить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gpepsi
  опции профиля:
сообщение 18.1.2012, 22:03
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 31.3.2010
Пользователь №: 1582

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(zloiia @ 18.1.2012, 14:16) *
На второй вопрос ответ сразу напрашивается http://doc.crossplatform.ru/qt/4.6.x/qsqlq...ml#lastInsertId

Цитата(Litkevich Yuriy @ 18.1.2012, 14:30) *
QVariant QSqlQuery::lastInsertId () const


всегда возвращает 0 :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloiia
  опции профиля:
сообщение 19.1.2012, 6:50
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 5.5.2011
Пользователь №: 2655

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(gpepsi @ 18.1.2012, 23:03) *
Цитата(zloiia @ 18.1.2012, 14:16) *
На второй вопрос ответ сразу напрашивается http://doc.crossplatform.ru/qt/4.6.x/qsqlq...ml#lastInsertId

Цитата(Litkevich Yuriy @ 18.1.2012, 14:30) *
QVariant QSqlQuery::lastInsertId () const


всегда возвращает 0 :(


А в таблице куда вставляется Primary Key точно есть с автоинкриментом? :rolleyes: Таблицу в студию
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.1.2012, 14:02
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


из описания к методу:
Цитата
... An invalid QVariant will be returned if the query did not insert any value or if the database does not report the id back.

используй
bool QSqlDriver::hasFeature ( DriverFeature feature ) const [pure virtual]
с аргументом QSqlDriver::LastInsertId для проверки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


11 чел. читают эту тему (гостей: 11, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.12.2024, 0:38