2

ユーザーが編集する複数のデータベースを処理するアプリがあり、指定されたパスからそれらを開きたい (QFileDialog を使用してパスを取得するなど)。

また、実行可能ファイルがある場所にデータベース ファイルが保存されることもわかりましたが、それらを別の場所に保存する方法はありますか?

4

2 に答える 2

2

sqlite を使用している場合は、QFileDialog で選択できるファイルへのパスを db.setDatabaseName(file_name) (db は接続) に渡すだけです。

他のデータベースを使用している場合は、おそらくデータベース サーバーに接続するだけです。

于 2012-02-13T11:19:57.757 に答える
1

まず、どのデータベースを使用していますか。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
于 2012-02-13T12:42:23.733 に答える