【问题标题】:can't connect to database by executable file无法通过可执行文件连接到数据库
【发布时间】:2013-11-24 07:20:54
【问题描述】:

我写了一个程序,需要连接到数据库来插入一些数据,我的可执行文件没有连接到数据库,但是当我检查代码连接建立时!我不知道是什么问题,你知道是什么问题吗? 我使用 Qt 连接到数据库,我的数据库在 mySql 上,这是我的连接方式:

soccer_db = QSqlDatabase::addDatabase("QMYSQL" , "sss");
    soccer_db.setHostName(addrrFile.c_str());
    soccer_db.setDatabaseName("sss");
    soccer_db.open();
    if (!soccer_db.open()){
        emit dsignal("ssss not opened. Ckech whether server is down or change config file");
        return false;
    }

【问题讨论】:

    标签: c++ mysql qt qtsql qsqldatabase


    【解决方案1】:

    由于您尝试打​​开数据库两次,您遇到了失败。第一次尝试成功,但第二次失败。删除第一次调用open,像这样

    soccer_db = QSqlDatabase::addDatabase("QMYSQL" , "sss");
    soccer_db.setHostName(addrrFile.c_str());
    soccer_db.setDatabaseName("sss");
    if (!soccer_db.open()){
        emit dsignal("ssss not opened. Ckech whether server is down or change config file");
        return false;
    }
    

    【讨论】:

    • 我尝试了这个但什么也没发生,当我尝试从终端连接建立执行二进制文件但是当我双击图标时它失败了!
    • 您需要用户名和密码吗?当您尝试连接到数据库时,可能会出现很多错误,您不应该感到如此惊讶。尝试使用soccer_db.lastError() 找出错误所在。
    • 谢谢您的回答,问题出在主机名上,因为我使用相对地址读取数据库IP地址,qt在运行二进制文件时更改当前目录并且找不到IP地址
    【解决方案2】:

    我想回答我的问题,在qt中你应该完全解决你的文件而不是相对地址,如果你需要完全解决你可以通过QtDir给出当前目录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-24
      • 2015-01-08
      • 2010-10-02
      • 2019-02-03
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多