我已经跟着很多关于发球台的教程,但我仍然无法从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)作为DRIVER,我收到以下错误:
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;
}
答案 0 :(得分:2)
通过将主机名更改为IP地址和端口来打开它。
db.setDatabaseName("DRIVER={SQL SERVER};SERVER=192.168.X.X;Port=port#;
DATABASE=Chessgames;Uid=sa;Password=xxxxx;");