Название: Отсоединиться от БД Отправлено: ASGAlex от Август 29, 2009, 02:22 Вопрос новичка, конечно, но пишу сюда:
Пользователь выбирает через QFileDialog::getSaveFileName файл, который будет новой БД. Однако, если файл уже существует, то он удаляется, а на его месте создаётся новый с тем же именем. Всё проходит гладко, за исключением того случая, когда имя нового файла совпадает с именем уже открытого файла. В этом случае не происходит подключения к новой БД. Вопрос: как тогда мне явно отключиться от текущёй БД, чтобы выполнить операции над файлами? Название: Re: Отсоединиться от БД Отправлено: GreenGo от Август 29, 2009, 04:08 void QSqlDatabase::close ()
Название: Re: Отсоединиться от БД Отправлено: ASGAlex от Август 29, 2009, 11:38 Так вот в чем косяк, close() у меня есть:
Код: void MainWindowImpl::OnNewDb() Код: QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. Название: Re: Отсоединиться от БД Отправлено: lit-uriy от Август 29, 2009, 11:47 чтобы БД закрыть, нужно ограничить область видимости переменной типа QSqlDatabase.
Обрати внимание, что во всех примерах используют локальную переменную. И используй статическую функцию: void QSqlDatabase::removeDatabase ( const QString & connectionName ) [static] (http://doc.crossplatform.ru/qt/4.5.0/qsqldatabase.html#removeDatabase) Прочти внимательно описание. Название: Re: Отсоединиться от БД Отправлено: ASGAlex от Август 29, 2009, 11:49 Опа, вот оно как, спасибо!
|