天天看點

連接配接不上資料庫sql server

将系統的各部分功能陸續添加了些後,準備使用ADO,連接配接上資料庫,形成一個完整的系統。代碼已上傳到:

https://github.com/helloMyLover/ManagerSystem(用的ms sql server本地系統資料庫,使用者和密碼都需要自己重新設定)

按順序出現的問題有:

- 連接配接無法用于執行此操作。在此上下文中它可能已被關閉或無效。

- [Miccorsoft][ODBC驅動程式管理器]未發現資料源名稱并且未指定預設驅動

- 無法連接配接admin

連接配接無法用于執行此操作。在此上下文中它可能已被關閉或無效

在程式中加斷點加異常try-catch,最終,在RecordSet.open彈出異常

連接配接無法用于執行此操作。在此上下文中它可能已被關閉或無效
           

關于connect、commad、record等資料庫的操作,請參考http://www.w3school.com.cn/ado/ado_intro.asp

首先,判斷了該記錄集是createInstance是成功的,然後确認這個函數所需參數的值有沒有未初始化的,或者值有異常的。

pRecordset->Open(strSql,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);

strSql                 為操作資料庫的字元串-      "SELECT * FROM Employee"    wchar_t *類型
m_pConnection          為與資料庫的一個連接配接
其餘為                  該記錄集的屬性設定
           

[Miccorsoft][ODBC驅動程式管理器]未發現資料源名稱并且未指定預設驅動

是以在open上面加了m_pConnection->State,檢測m_pConnection的狀态。

結果發現m_pConnection->State并不等于1,而是為-1,即系統并沒有建立起連接配接。

重複,m_pConnection.open附近加try-catch,結果彈出異常

[Miccorsoft][ODBC驅動程式管理器]未發現資料源名稱并且未指定預設驅動
           

看來這裡才是引發問題的根源在此,也就是資料庫的環境沒有設定好,在網上找了下設定ODBC驅動的方法:

1.控制台->管理工具->資料源添加使用者DSN和系統DSN,具體操作請自行Google。

2.(1)在ms sql server manager studio中在對象資料總管中相應的伺服器下->安全性->登入名,添加自己的登入名和密碼,右擊自己登入名,選擇屬性,彈出登入屬性,在選擇頁中選擇狀态,設定登入為其啟用,使用者映射為自己的資料庫,

(2) 同樣,在在ms sql server manager studio中右擊自己資料庫中的屬性,在選擇頁中點選權限,将自己需要的權限都點上。

完事,最後在m_pConnection.open添加的try-catch,彈出異常變成

無法連接配接admin
           

_bstr_strConnection=“Provider=SQLOLEDB;Data Source=8PDYMQCADPLRIDS;Initial Catalog=MyData;UID=admin;PWD=123”;

m_pConnection->Open(strConnection,”“,”“,0);

将上述的admin改成剛剛自己設定的登入名,即可。

* 連接配接成功。*