Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/47: Рейтинг темы: голосов - 47, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 24.11.2019
Сообщений: 312

подключение бд

22.12.2019, 01:05. Показов 9840. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при подключении в mainwindow.cpp бд
C++ (Qt)
1
2
3
4
 QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("C:\\users\\dimaf\\DB1.db3");
    db.open();
и так же в другом secondwindow.cpp
C++ (Qt)
1
2
3
4
 QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("C:\\users\\dimaf\\electronica.db3");
    db.open();
возникает ошибка ,мол уже был открыта бд и еще раз нельзя открыть .
как и где обьявить класс где можно было сделать обьявление общее?

Добавлено через 26 минут
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2019, 01:05
Ответы с готовыми решениями:

Ошибка Selenium: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
IWebDriver driver; FirefoxDriverService serv = FirefoxDriverService.CreateDefaultService(); ...

Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 127.0.0.1:11000
Клиент-серверное приложение на tcp/ip Все работало на win xp(порты 11000 и 11001), но на win7 не стартует. Итак: 1. Фаейрволл...

Определение осуществлено ли подключение к заданной WI-FI сети и подключение к ней, если не подключена
Добрый день. Суть задачи - в винде хочу что бы программа определяла - подключена ли она (винда) к заданной сети Wi-Fi (на которой...

3
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
22.12.2019, 05:41
Цитата Сообщение от marginald Посмотреть сообщение
возникает ошибка ,мол уже был открыта бд и еще раз нельзя открыть .
Сделайте по шаблону как ниже. Тут смысл в том, что вне области видимости переменной QSqlDatabase db объявить переменную QString connectionName. Внутри области видимости (ограниченную фигурными скобками) присвоить ей значение, а когда db выйдет из области видимости, удалить соединение с базой вызовом QSqlDatabase::removeDatabase(connectionN ame); После этого соединение будет удалено, и ошибка появляться не будет.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
QStringList SQLiteManager::getFirmwaresList()
{
    QStringList versionsList;
    QString connectionName;
    {
        QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE","SQLITE");
        db.setDatabaseName(databasePath);
        bool ok=db.open();
 
        if(!ok){
            throw QObject::tr("Cannot open database");
        }
 
        connectionName=db.connectionName();
 
        QSqlQuery query(db);
        query.prepare("SELECT Version FROM FirmwareModelsTable ORDER BY Version");
        if(query.exec()){
            while(query.next()){
                QString version=query.value("Version").toString();
                versionsList.push_back(version);
            }
        }
    }
    QSqlDatabase::removeDatabase(connectionName);
    return versionsList;
}
1
0 / 0 / 1
Регистрация: 24.11.2019
Сообщений: 312
22.12.2019, 12:40  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Сделайте по шаблону как ниже. Тут смысл в том, что вне области видимости переменной QSqlDatabase db объявить переменную QString connectionName. Внутри области видимости (ограниченную фигурными скобками) присвоить ей значение, а когда db выйдет из области видимости, удалить соединение с базой вызовом QSqlDatabase::removeDatabase(connectionN ame); После этого соединение будет удалено, и ошиб
огромное спасибо . подскажите пожалуйста как сделать чтобы другой пользователь ,который использует данное приложение мог задать свой путь к базе данных ? как задать общий путь?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
22.12.2019, 13:08
Цитата Сообщение от marginald Посмотреть сообщение
как сделать чтобы другой пользователь ,который использует данное приложение мог задать свой путь к базе данных ? как задать общий путь?
Создать свой класс для работы с базой, в конструкторе передавать ему строку, содержащую путь к базе. Потом проверить наличие такого файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2019, 13:08
Помогаю со студенческими работами здесь

Ошибка при работе с БД: Подключение не было закрыто. Подключение открыто
Здравствуйте! Столкнулся с проблемой. Вскакивает ошибка при работе с БД, когда проект запускаю из-под среды Подключение не было закрыто....

Подключение к серверу через удалённое подключение к рабочему столу из интернета
Поставил Windows Server 2016 на машину. запустил. Создал пользователей. Разрешил подключение к рабочему столу пользователям и вообще....

Подключение по RDP, После активации ключа касперского отвалилось подключение
Подскажите в чем может быть проблема. После активации ключа (продление) касперского (Endpoint 10) на сервере отвалилось подключение по RDP...

Подключение к облаку через подключение сетевого диска в проводнике - не работает
Всех приветствую, имеется Windows 7x64 Corporate, хочу подключиться к облакам яндекса и мэйла все делаю по инструкции ...

Пропало LAN подключение к Zyxel Keenetic Giga и подключение к провайдеру. WiFi живет
Всем привет Помогите решить проблему Вдруг пропал инет. Начал разбираться. Выяснил что компы подключенные по шнурку к роутеру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru