Qt и базы данных сохраняют и открывают их - PullRequest
2 голосов
/ 13 февраля 2012

У меня есть приложение, которое обрабатывает несколько баз данных, которые редактирует пользователь, и я также хотел бы, чтобы оно открывало их по указанному пути (как я получаю путь, используя QFileDialog).

Также я увидел, что оно сохраняетфайлы баз данных, где находится исполняемый файл, но есть ли способ сохранить его в другом месте?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Если вы работаете с sqlite, то вам просто нужно передать db.setDatabaseName (file_name) (где db - соединение) путь к файлу, который вы можете выбрать с помощью QFileDialog.

Есливы работаете с другой базой данных, тогда вы, вероятно, просто подключаетесь к серверу базы данных.

1 голос
/ 13 февраля 2012

Прежде всего, с какой базой данных вы работаете; MySQL, SQLite. Если вы работаете с SQLite, это действительно просто. Вы указываете имя файла при добавлении базы данных. Так, например:

//get the database file with QFileDialog
QString fileName = QFileDialog::getOpenFileName(this,
 tr("Open Database"), "/home/yourhome", tr("SQLite Database Files (*.sqlite)"));

//add the new database
QSqlDatabase db = QSqlDatabase::addDatabase("SQLITE");
db.setHostName("localhost");
db.setDatabaseName(fileName);
//now your database will be stored in fileName
...