为什么我无法连接到我的数据库

Why am I not being able to connect to my database?

本文关键字:我的 数据库 连接 为什么      更新时间:2023-10-16

我已经学习了很多关于tee的教程,但我仍然无法从Qt连接到我的数据库。我总是收到这样的错误:

Closed!  "[Microsoft][ODBC SQL Server Driver][DBMSLPCN]SQL Server does not exist or
access denied. [Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionOpen 
(Connect()). [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute   
QODBC3: Unable to connect"

或者,如果我使用SQL NATIVE CLIENT(即代替SQL SERVER)作为驱动程序,我会得到以下错误:

Closed!  "[Microsoft][ODBC Driver Manager] Data source name not found and no default 
driver specified QODBC3: Unable to connect"

我在这里坐了好几个小时想弄清楚,但我看不出我做错了什么。服务器、数据库等似乎都有正确的名称。我只是不明白为什么它没有连接。

下方的代码

#include "login.h"
#include "ui_login.h"
login::login(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);
    QSqlDatabase db = QSqlDatabase::addDatabase ("QODBC","Chessgames");
    db.setConnectOptions();
    db.setDatabaseName("DRIVER={SQL SERVER};SERVER=MYNAME\SQLEXPRESS;DATABASE=Chessgames;Uid=sa;Password=xxxxx;");
    if(db.open())
    {
       qDebug() << "Opened!";
       db.close();
    }
    else
    {
       qDebug() << "Closed! " << db.lastError().text();
    }
}
login::~login()
{
    delete ui;
}

通过将主机名更改为ip地址和端口来打开它。

db.setDatabaseName("DRIVER={SQL SERVER};SERVER=192.168.X.X;Port=port#;
                   DATABASE=Chessgames;Uid=sa;Password=xxxxx;");