很多要注意的地方 只要有一個小細(xì)節(jié)出錯就會連錯
大開SQL服務(wù) 遠(yuǎn)程連接還要大開SQL Brower
首先要引入ado動態(tài)鏈接庫文件msado15.dll
no_namespace 聲明不用命名空間
接著就是初始建立實例
最關(guān)鍵的是連接字符串
m_pConnection->Open("Driver=SQL Server;Server=CHOU-PC//SQLEXPRESS;DATABASE=chou;UID=sa;PWD=123456","","",adModeUnknown);
Driver為所需的連接驅(qū)動器 此處為"SQL Server“,大小寫和空格都不能錯 否則連接出錯
Server為服務(wù)器,此處連接本機(jī),不能用127.0.0.1,而必須用數(shù)據(jù)庫的實例名字
即 主機(jī)名-PC//SQLEXPRESS 必須是兩個斜杠,直接復(fù)制本機(jī)的實例名只有一個斜杠,也會導(dǎo)致出錯
因為在代碼中第一個斜杠為轉(zhuǎn)義 這個很重要
DATABASE為連接的數(shù)據(jù)庫名
UID為登陸的數(shù)據(jù)庫用戶名
PWD為用戶名密碼
adModeUnknown為默認(rèn)缺省訪問方式 該值為0
捕捉異常 e.Description()可以打印異常信息 查看異常信息可以幫助你找到錯誤
代碼如下
#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")
#include<iostream>
using namespace std;
void main()
{
CoInitialize(NULL);//注意要放在最開始
_ConnectionPtr m_pConnection;
HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");//
//m_pConnection.CreateInstance("ADODB.Connection");
if(FAILED(hr))
cout<<"Initialized failed."<<endl;
try
{
m_pConnection->Open("Driver=SQL Server;Server=CHOU-PC//SQLEXPRESS;DATABASE=chou;UID=sa;PWD=123456","","",adModeUnknown);
cout<<"ok"<<endl;
system("pause");
}
catch(_com_error e)
{ cout<<"error"<<
e.Description();
return ;
}
}