连接的时候我用了如下函数实现的:
int CCommunicationsDlg::ConnectDB()
{
CString strFileName;
strFileName += "database.ini";
//初始化Connection,Recordset,Command指针
m_pConnection.CreateInstance(_uuidof(Connection));
m_pRecordset.CreateInstance(_uuidof(Recordset));
m_pCommand.CreateInstance("ADODB.Command");
TCHAR sz[101];
memset(sz,0,sizeof(TCHAR)*101);
GetPrivateProfileString(_T("General"),_T("DB_NAME"),_T("ORASERV"),sz, //数据库本地服务名
100,strFileName);
CString strSource(sz);
GetPrivateProfileString(_T("General"),_T("DB_USER"),_T("SCOTT"),sz, //数据库用户
100,strFileName);
CString strUser(sz);
GetPrivateProfileString(_T("General"),_T("DB_PASSWORD"),_T("TIGER"),sz, //数据库密码
100,strFileName);
CString strPwd(sz);
try{
CString strConnect;
strConnect.Format("Provider=OraOLEDB.Oracle.1;Password=%s;User ID=%s;"
"Data Source=%s;Persist Security Info=True",strPwd,strUser,strSource);
m_pConnection->Open((_bstr_t)strConnect,"","",-1);
}
catch (_com_error e) {
AfxMessageBox(e.ErrorMessage());
return 0;
}
return 1;
}