Здравствуйте, гость ( Вход | Регистрация )
PAFOS | Дата 24.3.2011, 17:52 |
А еще можно держать подключения к нескольких серверам QSqlDatabase::addDatabase("QSQLITE",QLatin1String("OneConnection")); QSqlDatabase::addDatabase("QSQLITE",QLatin1String("TwoConnection")); ... ... QSqlDatabase db1 = QSqlDatabase::database("OneConnection"); QSqlDatabase db2 = QSqlDatabase::database("TwoConnection"); если при QSqlDatabase::addDatabase мы не указываем имя соединения, то оно будет носить имя по умолчанию и соответствнно QSqlDatabase::database() вернет это самое подключение по умолчанию. |
|
Kagami | Дата 18.3.2011, 23:31 |
он сохраняется где-то в памяти компьютера класс QSqlDatabase - именованный одиночка (в оригинале - "Value class"). поэтому соединение создаётся через статическую функцию-член, и получают соединение по имени также через статическиую функцию-член. Это я чтобы попроще объяснить и не пугать страшными словами. |
|
Litkevich Yuriy | Дата 18.3.2011, 22:50 |
он сохраняется где-то в памяти компьютера класс QSqlDatabase - именованный одиночка (в оригинале - "Value class"). поэтому соединение создаётся через статическую функцию-член, и получают соединение по имени также через статическиую функцию-член. |
|
FantasyOr | Дата 17.3.2011, 10:19 |
да, красиво. QSqlDatabase::database().driver()->beginTransaction(); |
|
Kagami | Дата 16.3.2011, 21:03 |
После того как ты создаешь объект QSqlDatabase с помощью функции QSqlDatabase::addDatabase(), он сохраняется где-то в памяти компьютера. Чтобы снова получить его не создавая новое соединение нужно использовать QSqlDatabase::database(). Например, в main создаем подключение:
А затем где нам нужно получаем его снова (в другой функции):
|
|
FantasyOr | Дата 16.3.2011, 15:34 |
Здравствуйте. Начал работать с базами данных. Пример в книге гласит - создайте подключение к базе в отдельной функции в main.cpp, а потом можете по всему приложению где угодно выполнять запросы, заполнять модели и прочее. Не понятен собственно момент подключения QSqlQuery к QSqlDatabase, сначала думал что в QApplication хранится соединение и оттуда подключается, но его там нет. А вопрос возник в следствии надобности делать коммиты и роллбеки, а эти функции запускаются у конкретных экземпляров QSqlDatabase. Подскажите пожалуйста: где брать объект QSqlDatabase в описанной выше схеме, для вызова у него функций commitTransaction ... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 12:19 |