数据库(MySQL)远程访问

背景:
        因项目需要,需要访问搭建在云服务器(轻量云服务器)上Mysql数据库信息
实现方式:
        1、Mysql数据库直连(需要驱动文件);
        2、ODBC连接(无需驱动文件)。
实现方法:
       常规数据库连接:设置连接数据库类型为“QMYSQL”,设置主机名、数据库名称、端口号、用户名、用户密码即可。但是,当使用VS创建好工程后,编写好Mysql数据库连接和访问语句功能时,VS输出窗口会提示你缺少数据库驱动,弹出提示驱动未加载错误消息。此时你必须使用QT官方源码编译驱动文件并在编译后地dll和lib分别放在已安装QT路径下地驱动路径和库文件路径下。

QT官网源码路径:Index of /archive/qt

源码编译博主参考:Qt Mysql驱动编译_编译mysql驱动的源码-CSDN博客

实现方法二:
      常规数据库连接:设置连接数据库类型为“QODBC”,设置主机名、数据库名称、端口号、用户名、用户密码即可。运行程序前必须使用ODBC数据源管理程序(x64)配置用户数据源,配置成功后即可连接成功。

源代码(示例工程已上传)

.h

#pragma once

#include <QDebug>
#include <QSqlQuery>
#include <QSQLError>
#include <QSqlDatabase>
#include <QtWidgets/QMainWindow>
#include "ui_CMainWidget.h"

using namespace std;

class CMainWidget : public QMainWindow
{
    Q_OBJECT

public:
    CMainWidget(QWidget *parent = Q_NULLPTR);

	// 连接数据库
	bool connectDB();

	// 查询数据库信息
	int queryMqsqlDataBaseInfo();

private:
    Ui::CMainWidgetClass ui;

	QSqlDatabase m_pDB;
};

.cpp

#include "CMainWidget.h"

CMainWidget::CMainWidget(QWidget *parent)
    : QMainWindow(parent)
	, m_pDB()
{
    ui.setupUi(this);

	int nRet = queryMqsqlDataBaseInfo();
	qDebug() << nRet;
}

bool CMainWidget::connectDB()
{
	m_pDB = QSqlDatabase::addDatabase("QMYSQL");  //QODBC  QMYSQL 
	m_pDB.setHostName("127.0.0.0");               // 使用云服务器地址
	m_pDB.setDatabaseName("zhongguo");            // 数据库名称
	m_pDB.setPort(3306);
	m_pDB.setUserName("root");
	m_pDB.setPassword("root");                    // 密码
 

	if (!m_pDB.open())
	{
		qDebug() << m_pDB.lastError();
		return false;
	}
	return true;
}

int CMainWidget::queryMqsqlDataBaseInfo()
{
	if (!connectDB())
	{
		return 1;
	}
    
    // 使用数据库语句测试访问是否成功
	QSqlQuery query;
	query.prepare("UPDATE user_login set pwd = :passwd WHERE user_name = '1';");
	query.bindValue(":passwd", "15");

	bool ret = query.exec();

	if (ret)
	{
		while (query.next())
		{
			qDebug() << u8"already update success!";
		}
	}
	else
	{
		QString strErrMsg = query.lastError().driverText();
		qDebug() << strErrMsg;
		return 3;
	}

	return 2;
}

属性文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫尘少主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值