我的应用程序是在vc++下用ADO连接ORACLE数据库的。程序在运行一段时间后,就再也连不上数据库了。需要重新启动应用程序后,才能继续进行。每次发生故障时程序连续运行的时间也不固定。连结函数如下
bool Connect()
{
    CString        strConn;
    strConn.Format("Provider=OraOLEDB.Oracle;Data Source=%s;User Id=%s;Password=%s;",
        m_strDBName,
        m_strDBUser,
        m_strDBPass);

    HRESULT        hr;

    try
    {
        hr = m_pConn.CreateInstance(__uuidof(Connection));
        if(SUCCEEDED(hr))
        {
            m_pConn->Open((_bstr_t)strConn,"","",adModeUnknown);
        }
        else
        {
            m_esGlobal.WriteLog("不能创建Connection对象!");
            return false;
        }
    }
    catch(_com_error e)
    {
        return false;
    }

    return true;
}