Qt和数据库保存并打开它们

时间:2012-02-13 10:45:15

标签: qt qtsql

我有一个处理用户编辑的多个数据库的应用程序,我也希望它能够从指定的路径打开它们(比如我使用QFileDialog获取路径)。

另外,我看到它将数据库文件保存在可执行文件所在的位置,但有没有办法可以将它们保存到其他地方?

2 个答案:

答案 0 :(得分:2)

如果您正在使用sqlite,那么您只需要传递给db.setDatabaseName(file_name)(其中db是连接)文件的路径,您可以使用QFileDialog选择。

如果您正在使用其他数据库,那么您可能只是连接到数据库服务器。

答案 1 :(得分: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