ADO 连接数据库 出错!
这个是字符串
sql.Format("Provider=SQLOLEDB.1;Password=%s;"
"Persist Security Info=True;User ID=%s;"
"Initial Catalog=%s;Data Source=%s",
m_strPwd,m_strUser,m_strDBName,m_strServer);
下面是OPEN 函数
BOOL CAdoDB::Open(LPCTSTR lpszConnect,long lOptions)
{
m_pConn.CreateInstance("ADODB.Connection");
m_pRs.CreateInstance(_uuidof(Recordset));
m_strConn=lpszConnect;
if(m_strConn.IsEmpty())
{
return FALSE;
}
if( IsOpen()) Close();
try
{
return (m_pConn->Open(_bstr_t(m_strConn),"","", lOptions)==S_OK);
}
catch (_com_error e)
{
AfxMessageBox(e.ErrorMessage());//都是这条语句报错
}
return FALSE;
}
[解决办法]
VC连接SQL Server2005,参考下:
pConn->ConnectionString = "driver={SQL Server};Server=(local);DATABASE=pubs;UID=sa;PWD=xxx";
[解决办法]
- C/C++ code
OnInitDialog(){……AfxOleInit();CoInitialize(NULL);p_Conn.CreateInstance(__uuidof(Connection));CString strConn = "……";HRESULT hr = p_Conn->Open((_bstr_t)strConn, "", "", adModeUnknown);if (FAILED(hr)){//数据库连接失败}if(FAILED(p_Rs.CreateInstance(__uuidof(Recordset)))){//数据集初始化失败}}
[解决办法]
算了补上try catch
- C/C++ code
catch(_com_error &e){AfxMessageBox(e.Description());}