Здравствуйте, гость ( Вход | Регистрация )
|
FantasyOr |
16.3.2011, 15:34
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: 0
|
Здравствуйте. Начал работать с базами данных.
Пример в книге гласит - создайте подключение к базе в отдельной функции в main.cpp, а потом можете по всему приложению где угодно выполнять запросы, заполнять модели и прочее. Не понятен собственно момент подключения QSqlQuery к QSqlDatabase, сначала думал что в QApplication хранится соединение и оттуда подключается, но его там нет. А вопрос возник в следствии надобности делать коммиты и роллбеки, а эти функции запускаются у конкретных экземпляров QSqlDatabase. Подскажите пожалуйста: где брать объект QSqlDatabase в описанной выше схеме, для вызова у него функций commitTransaction ... |
|
|
|
![]() |
|
Kagami |
16.3.2011, 21:03
Сообщение
#2
|
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9
|
После того как ты создаешь объект QSqlDatabase с помощью функции QSqlDatabase::addDatabase(), он сохраняется где-то в памяти компьютера. Чтобы снова получить его не создавая новое соединение нужно использовать QSqlDatabase::database().
Например, в main создаем подключение: А затем где нам нужно получаем его снова (в другой функции): |
|
|
|
FantasyOr не могу понять принципа работы 16.3.2011, 15:34
FantasyOr да, красиво.
QSqlDatabase::database().driver()-... 17.3.2011, 10:19
Litkevich Yuriy Цитата(Kagami @ 16.3.2011, 23:03) он сохр... 18.3.2011, 22:50
Kagami Цитата(Litkevich Yuriy @ 18.3.2011, 22:50... 18.3.2011, 23:31
PAFOS А еще можно держать подключения к нескольких серве... 24.3.2011, 17:52![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 4:44 |