Qt中使用mysql连接远程服务器
2014-10-16 22:52
495 查看
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();
相关文章推荐
- Qt中使用mysql连接远程服务器
- Navicat和MySQL的故事之“使用Navicat远程连接装在虚拟机centos上的mysql服务器问题总结”
- 使用secureCrt端口转发连接远程服务器mysql
- 使用navicat建立与服务器的远程mysql连接
- 使用navicat建立与服务器的远程mysql连接
- 使用navicat在本地创建远程服务器mysql连接
- 使用navicat建立与服务器的远程mysql连接
- linux 服务器mysql已经配置好,远程连接不上(已解决)
- python 使用ssh连接服务器进行远程命令行操作
- 如何使用MSTSC命令远程连接服务器或客户端
- Android网络客户端编程,HttpGet类和HttpPost类使用详解,连接php-mysql服务器
- Qt中使用QHttp连接网站服务器,并传递参数(使用QHttp::request()函数实现)
- SAP中使用ABAP远程连接MS Sql Server服务器
- 连接远程oracle和SVN服务器客户端的使用
- 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
- Linux 下 FreeSWITCH 远程连接使用 MySQL 替代 SQLite
- 工具推荐:如何部署使用“远程桌面Web连接”,并且扩展它,可以连接非3389端口的远程桌面,(服务器管理员必备)
- 最近在配mysql和web分离的服务器时所出现的phpmyadmin无法连接远程数据库问题
- Connector/Net 连接 MySQL远程服务器出现 "Unable to connect to any of the specified MySQL hosts" 解决方法
- 怎样远程连接服务器上的MySql?