目录
序言:在做GUI编程时,遇到QT需要链接服务器mysql的情况,用QMYSQL一直有报错,最终没有解决,便换成ODBC连接。(默认服务器数据库已经开放了权限以及端口)
a.Mysql版本一定要和QT相符合,QT 64位 Mysql也要64位
序言:在做GUI编程时,遇到QT需要链接服务器mysql的情况,用QMYSQL一直有报错,最终没有解决,便换成ODBC连接。(默认服务器数据库已经开放了权限以及端口)
一.准备:Mysql,ODBC
a.Mysql版本一定要和QT相符合,QT 64位 Mysql也要64位
b.官网下载ODBC
官网ODBC地址:MySQL :: Download Connector/ODBC
二.配置ODBC
a.搜索栏中搜索ODBC数据源
b.添加新链接
点击添加
选择MySQL ODBC UNicode Driver
c.配置新链接
绿色部分为第一部分,第一部分填写随意填写你要取的名字以及备注,但是一定要记住所取数据库名字
红色部分填写数据库信息,将ip地址以及用户名密码填写进去,在database里选择自己的要链接的数据库
三.QT中使用ODBC
a.在.pro文件中添加SQL,以及network
b.创建类文件,编写连接函数
头文件
#pragma once
#include <QDebug>
#include <QSqlQuery> //执行和操作SQL语句的头文件
#include <QSqlError>
#include <QSqlRecord>
#include <QSqlDatabase>
#include <QSqlQueryModel>
extern QSqlDatabase gm_db;
extern QSqlQuery *gp_qry;
bool connect_to_MYSQL();
cpp文件
#include "mysql.h"
QSqlDatabase gm_db;
QSqlQuery *gp_qry;//执行语句
//连接数据库
bool connect_to_MYSQL()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //使用的数据库类型
db.setHostName("*****");//服务器ip地址
db.setPort(3306); //默认
db.setDatabaseName("******"); //创建ODBC的名字
db.setUserName("******"); //用户名
db.setPassword("******"); //用户密码
if(db.open())
{
qDebug("数据库连接成功!");
return true;
}
else{
qDebug("数据库链接失败!");
return false;
}
}
c.在需要连接数据库时使用函数连接便可,附带语句执行代码
语句执行(使用变量)
QSqlQuery query;
query.prepare("select Stu_Pswd from Student where Stu_User=:n2");//SQL语句
query.bindValue(":n2",user_name);//抽取随机数据
query.exec();
query.first();
QString num = query.value(0).toString();//查询结果
tips:QMYSQL连接方式在重装系统后就不行了,所以后来改成了odbc,小白还在学习服务器,欢迎来一起讨论哈