2014-11-09 116 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;"); 
相關問題