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

来源:互联网 发布:双网卡双网络设置 编辑:程序博客网 时间:2024/06/05 15:34

1、首先查看有没有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 表名;//显示某个表的字段说明


<span style="font-family:SimSun;font-size:18px;">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(); </span> 





0 0
原创粉丝点击