Qt中使用mysql连接远程服务器

1 篇文章 0 订阅

db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug() << "MYSQL driver valid" << db.isValid();


首先查看有没有MYSQL的驱动。

一般Qt开始时都没有mysql这个驱动。显示 MYSQL driver is not valid。这里 我们只讨论Qt5.2.1版本的,如果是版本的话,可能会很麻烦。要去编译mysql驱动。所以我建议还不如直接卸载了,用最近的呢。

Qt5.2.1版本如何解决没有MYSQL驱动这个问题呢?很简单,如果你的电脑里面没有暗转mysql数据库,就去安装个。安装完mysql,可能要加环境变量。编辑Path,在后面加上C:\Program Files\MySQL\MySQL Server 5.7\bin 。
然后到安装目录,将c:\Program File\MySQL\MySQL Server 5.7\lib\中的libmysql.dll这个文件拷贝到D:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin 目录下。Ps:以上的目录是我电脑的安装目录,具体要根据你自己的电脑。


mysql安装好后,自己就可以直接用dos测一下了:

mysql -u 用户名 -p密码 -h 地址 例:mysql -u root -p123 -h 127.0.0.1

这里可以介绍几个mysql简单的命令: show databases;//显示数据库  usemysql ;//选择那个数据库 show table ;//显示表 describe 表名;//显示某个表的字段说明


 

db.setHostName(sIp);
    db.setPort(iPort);
    db.setUserName(sUserNm);
    db.setPassword(sPwd);
    //连接sql服务器
    bool r = db.open();
if (r)  
    {  
        qDebug() << "SQL Server 2000 Connect OK!";  
  
        /* 计算当前表中id*/  
        QSqlQuery query1 = QSqlQuery(db);  
        query1.clear();  
        query1.prepare("select top 1 ID from SQL_2000 order by ID desc");  
        bool a = query1.exec();  
        int id;  
        if (a)  
        {  
            while(query1.next())  
            {  
                id = query1.value(0).toInt();  
            }  
        }  
  
        /*插入数据*/  
        QSqlQuery query2 = QSqlQuery(db);  
        QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"  
                                  "values (?, ?, ?, ?, ?, ?, ?)");  
        bool b = query2.prepare(sq1);  
        if(b)  
        {  
            qDebug() << "insert data success!";  
        }  
        query2.bindValue(0, id+1);  
        query2.bindValue(1, sIp);  
        query2.bindValue(2, iPort);  
        query2.bindValue(3, sUserNm);  
        query2.bindValue(4, sPwd);  
        query2.bindValue(5, sDbType);  
        query2.bindValue(6, sDbNm);  
  
        /*查询数据*/  
        QSqlQuery query3 = QSqlQuery(db);  
        query3.prepare("select * from SQL_2000 where Id=1");  
        bool c = query3.exec();  
        if (c)  
        {  
            qDebug() << "select data success!";  
            while(query3.next())  
            {  
                qDebug() << query3.value(0);  
                qDebug() << query3.value(1);  
                qDebug() << query3.value(2).toInt();  
            }  
        }  
        else  
        {  
            qDebug() << query3.lastError().text().data();  
        }  
  
        /*删除数据*/  
        QSqlQuery query4 = QSqlQuery(db);  
        query4.prepare("delete from SQL_2000 where Id=1");  
        bool d = query4.exec();  
        if (d)  
        {  
            qDebug() << "delete data success!";  
        }  
        else  
        {  
            qDebug() << query3.lastError().text().data();  
        }  
    }  
    else  
    {  
        QMessageBox::information(this, tr("提示"), tr("Sql Server数据库连接失败!"), tr("确定"));  
        qDebug() <<"error_SqlServer:\n" << db.lastError().text();  
    }  
  
    db.close(); 


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值