学习连接类建立 类在其他地方使用 演示如何连接MYSQL SQL2000 数据库
cpp
#ifndef CONNECTIONSERVER_H
#define CONNECTIONSERVER_H
class ConnectionServer
{
public:
static bool createConnectionByName(const QString &connectionName);
static void createConnectionByNameSQL2000(const QString &connectionName);
private:
};
#endif // GONGGHANS_H
#include "ConnectionServer.h"
#include <QSqlDatabase>
bool ConnectionServer::createConnectionByName(const QString &connectionName)
{
QSqlDatabase db2 = QSqlDatabase::addDatabase("QODBC", connectionName);
// 数据库连接需要设置的信息
db2.setDatabaseName("hw");
//QODBC连接数据库 不用填写以 因为 电脑ODBC已经设置好了
//db2.setHostName("172.25.0.24");
//db2.setPort(3306);
//db2.setUserName("root");
//db2.setPassword("QWERTY");
//db2.setDatabaseName("ZSSJKCF"); // 如果是 SQLite 则为数据库文件名
//db.setPort(3306);// 端口号
// 连接数据库判断
bool ok = db2.open();
if (ok)
{
qDebug() << "数据库连接成功 database connect is ok";
}
else
{
qDebug() << "数据库连接失败 database connect is fail";
}
return true;
}
void ConnectionServer::createConnectionByNameSQL2000(const QString &connectionName)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", connectionName);
// 数据库连接需要设置的信息
QString dsn = QString("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2").arg("172.25.0.24").arg("HWSJK");
db.setDatabaseName(dsn);
//db.setHostName("172.25.0.24"); //设置数据库主机名
//db.setDatabaseName("HWSJK"); //设置数据库名
db.setUserName("huwei853"); //设置数据库登入用户名
db.setPassword("QWEasd123"); //数据库登入密码
//db.setPort(3306);// 端口号
// 连接数据库判断
bool ok = db.open();
if (ok){
qDebug() << "数据库连接成功 SLQ2000";
}
else
{
qDebug() << "数据库连接失败SLQ2000";
}
}
类的调用
简单使用
ConnectionServer::createConnectionByName("mysql");
QSqlDatabase db = QSqlDatabase::database("mysql");
QSqlQuery query(db);
QString llf = "Select 序号,内容 From ptquanx";
query.exec(llf);
if (query.next()){
........
}
使用时候 看看连接状态
// 检查数据库连接
QString connectionName ="MYSQL";
QSqlDatabase db;
// 检查连接是否已存在
if (QSqlDatabase::contains(connectionName)) {
// qDebug() << "deleteRecord: 连接已存在,获取连接:" << connectionName;
db = QSqlDatabase::database(connectionName);
} else {
//qDebug() << "deleteRecord: 连接不存在,创建新连接: 1" << connectionName;
// 创建连接
if (!ConnectionServer::createConnectionByName(connectionName)) {
//qDebug()<< "deleteRecord: 创建数据库连接失败:" << connectionName;
return "创建数据库连接失败";
}
db = QSqlDatabase::database(connectionName);
// qDebug() << "deleteRecord连接: TTTT" << connectionName;
}
// 构建参数字符串
QSqlQuery query(db);
QString llf = "Select 序号,内容 From ptquanx";
query.exec(llf);
if (query.next()){
........
}