首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于QT数据库自动连接的有关问题!

2013-02-24 
关于QT数据库自动连接的问题!!!! 现在我有个程序是连接的远程数据库,一旦拔掉网线,再插上的话,数据库不能

关于QT数据库自动连接的问题!!!!
 现在我有个程序是连接的远程数据库,一旦拔掉网线,再插上的话,数据库不能自动连接,还得重启程序才能连接上,我想求一个,不用重启就会自动连接上的方法??
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName(HostName);
db.setDatabaseName(DatabaseName);
db.setUserName(UserName);
db.setPassword(Password);

if(!db.open())
{
QMessageBox::critical(0, QObject::tr("Error"),
QObject::tr("The database reported an error: %1").arg(db.lastError().text()));
return false;
}
return true;
连接数据库的语句!!!是这个!!! qt database
[解决办法]

 QSqlDatabase db;
      if(QSqlDatabase::contains("user")){
           db = QSqlDatabase::database("user");
        
      }else{
          db = QSqlDatabase::addDatabase("QMYSQL", "user");
          db.setHostName("localhost");
          db.setDatabaseName("user");
          db.setUserName("root");
          db.setPassword("");
          db.exec("SET NAMES 'GBK'");//utf-8
          db.open(); // 尝试连接数据库

      }

[解决办法]
把你的请求代码包装起来,如果碰到错误,则用QSqlDatabase.lastError()检测是不是网络连接错误,如果是,则重建链接。

热点排行