如何用MFC编程让一台oracle客户端连接oracle服务器
我在oracle客户端中能用Net Configuration Assistant正常的连接到oracle服务器---代表oracle客户端的机子和oracle服务器的机子可以连通
我写的程序就联不通了。关键代码:在.h声明_ConnectionPtr m_pConnection;//连接对象指针
在app的函数InitInstance()中
//初始化COM
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}
CoInitialize(NULL);
try//连接数据库
{
m_pConnection.CreateInstance(__uuidof(Connection)); strConnectString.Format(_T("Provider=%s;User ID=bt;Persist Security Info=true;Password=bt123456;Data Source=%s;"),strProvider,strSource); HRESULT retS=m_pConnection->Open((_bstr_t)(strConnectStringm,"","",adModeUnknown);

if(SUCCEEDED(retS))
AfxMessageBox(TEXT("数据库open成功!"));
else
AfxMessageBox(TEXT("数据库open失败!"));

}
catch(_com_error e)
{

AfxMessageBox(TEXT("数据库连接出错,捕获异常!"));

AfxMessageBox(e.Description());

return FALSE;

}
这段代码在我本地机子上(也就是服务器的机子上)能 正常的连接oracle数据库
但是在oracle客户端上就不能连接到oracle数据库
麻烦大伙帮帮忙,谢谢!!

解决方案 »

  1.   

    程序问题,你先用oracle客户端,用用户名和密码登陆下,如果能登陆进去,就只能说是你程序问题了,嘿嘿。到网上找找MFC连接数据库的代码吧,很多的。
    HRESULT hr = S_OK;
    try
    {
    CString sql;
    sql.Format("Update name set table='%s'", tip);
    _ConnectionPtr pConnection;
    _CommandPtr    pCommand;
    _RecordsetPtr  pRst_Res; 
    pConnection.CreateInstance( __uuidof( Connection ) );
    if(SUCCEEDED(hr))
    {  
    hr = pConnection->Open( (_bstr_t)"Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=DBHJFI;Data Source=127.0.0.1","","",adModeUnknown );
    if(SUCCEEDED(hr))
    {
    hr = pCommand.CreateInstance( __uuidof( Command ) );
    if(SUCCEEDED(hr))
    {
    pCommand->ActiveConnection = pConnection;
    hr = pRst_Res.CreateInstance( __uuidof( Recordset ) );
    if(SUCCEEDED(hr))
    {
    BOOL isCoonected = pRst_Res->Open((_bstr_t)sql,pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText); }
    }
    }
    } }
    catch (CMemoryException* e)
    { }
    catch (CFileException* e)
    {
    }
    catch (CException* e)
    {
    }
    catch (...)
    { }
      

  2.   

    谢谢 w7210982 的答复但是我需要的是oracle客户端和oracle服务器的连接串
    而你的这个连接串
    hr = pConnection->Open( (_bstr_t)"Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=DBHJFI;Data Source=127.0.0.1","","",adModeUnknown );
    是和sqlserver进行连接的我把这个相应的改成
    hr = pConnection->Open("Provider=OraOLEDB.Oracle.1;Password=bt123456;User ID=bt;Data Source=127.0.0.1;Persist Security Info=false","","",NULL);
    也是连接不上我的oracle服务器啊
    求指导!!