2014-11-09 114 views
1

我已经遵循了很多教程来开球,但我仍然无法连接到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本地客户端(即,而不是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; 
} 
+1

您是否已将MYNAME添加到hosts文件? SQL Server是否启用了TCP/IP? SA密码是否正确? – Max 2014-11-09 11:53:55

+0

将MYNAME添加到hosts文件?我没有那样做。不过,我启用了tcp/ip并且sa密码正确。 – MrPickles 2014-11-09 17:38:35

回答

2

代码得到它通过改变主机的IP地址和端口打开。

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