找回密码
 立即注册
收起左侧

qt连接数据库

4
回复
7290
查看
[复制链接]

尚未签到

来源: 2015-3-21 14:07:31 显示全部楼层 |阅读模式
1Qter豆
我想把qt中连接数据的服务器名、登录名,密码,做成可配置的,假如以后更换连接直接改配置文件就可以了,不用重新编译生成了,在网站中在webconfig中添加就可以了,不知道在qt中怎么添加配置文件,求指教!


最佳答案

查看完整内容

如上,用QSettings设置 QSettings sett(QApplication::applicationName() + ".ini", QSettings::IniFormat); db = QSqlDatabase::addDatabase(sett.value("MYSQL/databasedriver", "QMYSQL").toString()); db.setHostName(sett.value("MYSQL/hostname", IPREMOTE).toString()); db.setDatabaseName(sett.value("MYSQL/databasename", DATABASENAME).toString()); db.setUserName(sett.value("MYSQL/username", USER ...
回复

使用道具 举报

累计签到:118 天
连续签到:2 天
2015-3-21 14:07:32 显示全部楼层
如上,用QSettings设置
QSettings sett(QApplication::applicationName() + ".ini", QSettings::IniFormat);
    db = QSqlDatabase::addDatabase(sett.value("MYSQL/databasedriver", "QMYSQL").toString());    db.setHostName(sett.value("MYSQL/hostname", IPREMOTE).toString());
    db.setDatabaseName(sett.value("MYSQL/databasename", DATABASENAME).toString());
    db.setUserName(sett.value("MYSQL/username", USERNAME).toString());
    db.setPassword(sett.value("MYSQL/password", PASSWORD).toString());
回复

使用道具 举报

尚未签到

2015-3-21 14:10:59 显示全部楼层
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
                                  "SERVER=%1;" //服务器名称
                                  "DATABASE=%2;"//数据库名
                                  "UID=%3;"           //登录名
                                  "PWD=%4;"        //密码
                                  ).arg("****")
                          .arg("****")
                          .arg("****")

把服务器名、登录名、密码、写到配置文件中,然后程序开始运行之前读取配置文件,这样以后假如我服务器名变了,程序不用重新编译了。有没有什么办法,求指教
回复

使用道具 举报

累计签到:40 天
连续签到:1 天
2015-3-21 16:18:44 显示全部楼层
以梦wei马 发表于 2015-3-21 14:10
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
                                  "SERVER=%1;" // ...

存在 txt 或者 二进制文件 或者 SQLITE 中
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-3-21 17:43:04 显示全部楼层
可以使用QSettings去设置。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了