首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ADO 连接数据库 出错!解决思路

2012-03-24 
ADO 连接数据库 出错!这个是字符串sql.Format(ProviderSQLOLEDB.1Password%sPersist Security Info

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());} 

热点排行