与信任模式区别不大,ADO连接SQL Server主要有以下注意:
1. 网络模式
连接字符串示例:
hr = pConnection->Open("Provider=SQLOLEDB;Data Source=127.0.0.1,61982;Network Library=DBMSSOCN;Initial Catalog=MyTestConnection;Uid=Test1;Pwd=123","","",adModeUnknown);
61982这个是TCP Dynamic Ports, 设置位置为:Sql Server Configuration Manager→SQL Server Network Configuration→Protocols for SQLEXPRESS→TCP/IP。
用户设置参照2。
2. 一般模式
1)使用一般模式进行访问时,需要先让sa账号有作用,可以参考MSDN,以下是链接,这里是2012的设置方式,大同小异
http://msdn.microsoft.com/en-us/library/ms188670.aspx
但修改sa帳號在我機器上按照以上方式無法修改密碼,所以使用了另一種方式
C:\Users\youhong.li>osql -S LIYOUHONG\SQLEXPRESS -E
1>
2>
3>
4> ALTER LOGIN sa ENABLE;
5> GO
1> ALTER LOGIN sa WITH PASSWORD = 'sa';
2> go
1> exit
2)第1)完成以后,可以使用sa账号来建立新的用户名和密码,提供给一般模式进行访问(本人是这样做的,沒有直接使用sa帳號進行測試)
3)接下來,需要設置數據庫對於用戶的訪問權限(若不設置,則會出現類似hr為sql_sec_e_permissiondenied的錯誤),具體步驟:使用sa帳號以SQL Server Authentication方式連接 → security → Logins → 選擇新建的用戶名,雙擊或者右鍵property → User Mapping → 選擇右邊對應的數據庫(Database)→ 右下方的checkbox中選中db_datareader(可以進行查詢select操作)
4)连接字符串:
hr = pConnection->Open("Provider=SQLOLEDB;Data Source=LIYOUHONG\\SQLEXPRESS;Initial Catalog=MyTestConnection;uid=Test1;pwd=123;","","",adModeUnknown);