首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

ADO连接ORCALE出现连接错误

2014-01-28 
ADO连接ORCALE出现连接错误:CoInitialize(NULL) try { m_pConnection.CreateInstance(__uuidof(Connection

ADO连接ORCALE出现连接错误:

CoInitialize(NULL);
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
}
catch(_com_error e)
{

CString log;
log.Format("数据库打开异常,原因:%s",(char*)e.Description());
MessageBox((LPCTSTR)e.Description(),"数据库打开异常",MB_ICONERROR);
CDialog::EndDialog(-1);
return FALSE;
}
CString log;
CString str="Provider=MSDAORA.1;Password=";//OraOLEDB.Oracle.1
  str+="winnix";
  str+=";Persist Security Info=False;User ID=";
  str+="winnix";
  str+=";Data Source=";
  str+="winnix";
  _RecordsetPtr pRd=NULL;
try
{


if(m_pConnection->GetState()&adStateOpen)
m_pConnection->Close();
m_pConnection->CursorLocation=adUseClient;
m_pConnection->Open((_bstr_t)str,"","",adModeUnknown);
  }
catch(_com_error& e)
{
MessageBox("数据库连接错误" , "错误" , MB_OK|MB_ICONERROR);
log.Format("数据库打开异常,原因:%s",(char*)e.Description());
Addlog(log);
exit(0);
}
  try
  {
if(m_pRecordset->GetState()&adStateOpen) m_pRecordset->Close();
CString sql="WINNIX.T_OPERATOR";
m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTable);//这里打开整个表的时候则不会出现错误..........
m_pRecordset->Close();
  }


try
{
pRd.CreateInstance(__uuidof(Recordset));
if(pRd->GetState()&adStateOpen) pRd->Close();
CString sql;
if(dlg.m_password=="")
{
sql="SELECT * FROM T_OPERATOR WHERE O_ACCOUNT='";
sql+=dlg.m_name;
sql+="' AND O_PASSWD IS NULL AND O_STATUS='0' AND O_TYPE='1'";
}
else
{
sql="SELECT * FROM T_OPERATOR WHERE O_ACCOUNT='";
sql+=dlg.m_name;
sql+="' AND O_PASSWD='";
sql+=dlg.m_password;
sql+="' AND O_STATUS='0' AND O_TYPE='1'";
}
  pRd->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTable);//这里用上面的sql选择语句来打开数据库的时候就会出错,报无效的表名的错误.可是我的表还有那些字段明明都在啊!
catch (_com_error& e)
{
log.Format("数据库打开异常,原因:%s",(char*)e.Description());
log+="动作时间:";
log+=CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S\r\n");         

热点排行