как подключить базу данных и сделать запрос sql |
Здравствуйте, гость ( Вход | Регистрация )
как подключить базу данных и сделать запрос sql |
Гость_Гость_lexflax_*_* |
26.5.2013, 12:07
Сообщение
#1
|
Гости |
Доброго времени суток...
Никогда раньше в qt qreator не работал, задали на нем написать приложение к которому можно подключить базу данных которую я уже сделал в sqlite3... Как в нем подлючается база данных не знаю... посмотрел много разной литературы но толком суть не понял как это делается... у меня база данных называется fox.db , вид допустим такой -приложение должно иметь кнопку по нажатию которой подключается база и выполняется запрос который допустим в компоненте LineEdit я буду писать... и результат запроса отображается на каком нибудь другом компоненте... подскажите как это реализовать собственно нужен сам код... Нашел такой по подлючению базы... void MainWindow::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("fox"); bool b = db.open(); но не понимаю подключилась ли база данных на самом деле или нет... |
|
|
Litkevich Yuriy |
26.5.2013, 13:03
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
db.setDatabaseName("fox"); у меня база данных называется fox.db Да и вообще имя нужно полностью писать (т.е. путь в том числе) посмотрел много разной литературы но толком суть не понял как это делается смотри примеры из документации |
|
|
Гость_Гость_lexflax_*_* |
28.5.2013, 3:54
Сообщение
#3
|
Гости |
db.setDatabaseName("fox"); у меня база данных называется fox.db Да и вообще имя нужно полностью писать (т.е. путь в том числе) посмотрел много разной литературы но толком суть не понял как это делается смотри примеры из документациину вот вроде получился код подключения базы void MainWindow::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::database(); if (db.connectionName().isEmpty()) db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("fox"); if (!db.open()) { QMessageBox::warning(this, qApp->applicationName(), QString("Не открывается бд : %1").arg(db.databaseName())); return; } сообщение что база не подключенна не выдает... значит я так понимаю база подключилась... Как теперь к этой базу отправить запрос допустим select * from kod; И результат этого запроса вывести в компонент tableView?????? |
|
|
Гость_Гость_lex_*_* |
28.5.2013, 6:31
Сообщение
#4
|
Гости |
появилась другая проблема вместо того чтоб подключать мою базу после нажатия кнопка программа создает файл с таким же именем как моя база только пустой и подключает его... почему так выходит????
|
|
|
Litkevich Yuriy |
28.5.2013, 7:15
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Это особенность SQLite, если файла БД не существует, то он будет создан.
Задавай правильный путь к файлу БД. как выполнять запросы смотри в примерах, примеров в документации полно. |
|
|
Гость_Гость_lex_*_* |
28.5.2013, 10:39
Сообщение
#6
|
Гости |
прописал весь путь к базе...
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("C:/Users/Алексей/Desktop/sqlite3/fox"); db.open(); так же пробовал и с расширением QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("C:/Users/Алексей/Desktop/sqlite3/fox.db"); db.open(); В итоге в этой папке появляется опять же второй файл с именем fox пустой а рядом с ним моя база fox. Даже если проверять если ли подключение или нет, то не факт что созданное подключение будет именно с моей базой а не тем файлом который появляется при запуске программы... |
|
|
Litkevich Yuriy |
28.5.2013, 13:03
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
появляется опять же второй файл с именем fox пустой а рядом с ним моя база fox. на виндовозе (который не чувствует регистр символов) нельзя создать в одном каталоге два одинаковых файла.Стало быть есть какая-то разница в именах. И к стати, путь содержащий кириллицу - источник многих проблем |
|
|
Текстовая версия | Сейчас: 23.4.2024, 9:40 |