ユーザーが編集する複数のデータベースを処理するアプリがあり、指定されたパスからそれらを開きたい (QFileDialog を使用してパスを取得するなど)。
また、実行可能ファイルがある場所にデータベース ファイルが保存されることもわかりましたが、それらを別の場所に保存する方法はありますか?
sqlite を使用している場合は、QFileDialog で選択できるファイルへのパスを db.setDatabaseName(file_name) (db は接続) に渡すだけです。
他のデータベースを使用している場合は、おそらくデータベース サーバーに接続するだけです。
まず、どのデータベースを使用していますか。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