Михаиллл10. November 2018 10:47
через QT не могу открыть файл SQLite
Добрый день.
Я создал в SQLiteStudio базу данных.
Пытаюсь открыть ее в QT этим кодом
QSqlDatabase ResumeDB; //resume sql
ResumeDB.setDatabaseName("C:\\CVReader\\ResumeArraySQLite.db");
if (!ResumeDB.open()) {qDebug()<<"not open";}
дебаг выдает "not open"
Не знаете, где ошибка и как открыть?
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
EVA25. Dezember 2023 10:30
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Спасибо.
И еще вопрос, пытаюсь использовать запрос exec, но выдает ошибку QSqlQuery::exec: database not open
код такой
прочитай хотя бы это
http://www.java2s.com/Code/Cpp/Qt/UsingsqldatabasefromQt.htm
спасибо , читаю.
но почему у меня не верно?
тут https://doc.qt.io/qt-5.11/qsqlquery.html#exec также написано.
их пример
и скажите пожалуйста, что такое cache
и по предложенной Вами ссылки также делают
cache это название соединения
можно так
тогда будет какая-то базовая название соединения
если я не ошибаюсь вот так будет работать твой вариант, так как при таком, ты не передаешь соединения для квери
Сделал тренировочную таблицу. Если вот так писать, то при первом запросе нет ошибок, но при повторе действия выдает ошибку QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Смотрел в редакторе SQL, данные не добавляются.
Подскажите пожалуйста, что не так.
и если делать так, тоже не работает
мені по російски важко писати тому, моежш перкласти ))))
помилка виникає тому що ти намагаєшся створити ще одне з'єднання з такоюж назвою, щоб це зробити спочатку потрібно видалити старе з'єднання
QSqlDatabase::removeDatabase(name_connect);
ти можеш зробити так
........
QSqlDatabase::removeDatabase("connect_db");
якщо у вас плануєтсяь виокористовувати одну базу то яб просто встановив зєднання десь на початку програми і потім просто на нього зсилався
усі конекти до бази в Qt є статичними
по приклату який ти скинув важно щось сказати....
Из опыта: Прежде чем использовать запрос в QSqlQuery напиши его и выполни непосредственно на базе данных. Убедись что он работает а потом переноси уже в программу. Сразу отпадет масса вопросов.
тому що цей запит не коректний, в тебе там зайві коми, зайва крапка з комою
порівняй з от цим
Большое спасибо всем за помощь.
Так работает
Добрий день.
Я реалізую з'єдання з БД у окремому потоці.
dbName = "my_db_" + QString::number((quint64)QThread::currentThread(), 16);
db = QSqlDatabase::addDatabase("QSQLITE", dbName);
db.setPort(dataBase->port());
db.setHostName(dataBase->hostName());
db.setDatabaseName(dataBase->databaseName());
dbIsValid = db.open();
І БД відкривається. Проте при створення QSqlQuery:
QString resualtQuery {"SELECT rowId, * FROM Contacts WHERE Name = \"" + name + "\""};
QSqlQuery sqlQuery {resualtQuery};
Виникає помилка:
QSqlDatabasePrivate::database: requested database does not belong to the calling thread.
QSqlQuery::prepare: database not open
Робота з потоками організована на основі signal-slot в Qt::DirectConnection.
Підкажіть, будь-ласка, що може бути не так?
Вирішення знайшов.
Вказав замість назви БД об'єкт класу QSqlDataBase для QSqlQuery.
QSqlQuery m_query = QSqlQuery(qSqlDataBase);
Після двох днів пошуку рішення, все-таки знайшов.