ado连接数据库出现的有关问题,(求高手解答)

ado连接数据库出现的问题,(求高手解答)
我写的程序是用ado读取数据,但是软件运行后第一个读取的时候有时候连接上有时候连接不上,很不稳定,如果连接上了一直操作是没有问题的,但是放在那过个把小时再去取数据可能又连接不上了,连接的字符串是没有问题的
有时候是读取几次出错后或者是重启动软件就可以连上了,不知道什么原因,下面是连接数据库的函数代码
C/C++ code

BOOL CAdoOleDB::Connect(LPCTSTR lpszConnectString, const long lOptions)
{
    try
    {
        HRESULT hr = m_ptrConnection.CreateInstance("ADODB.Connection");
        
        if (SUCCEEDED(hr))
        {
            m_ptrConnection->CommandTimeout = 60;
            m_ptrConnection->Mode = adModeShareDenyNone;
            m_ptrConnection->CursorLocation = adUseClient;            
            if (SUCCEEDED(m_ptrConnection->Open(lpszConnectString, _T(""), _T(""), lOptions)))
                return TRUE;            
        }
    }
    catch (_com_error er)
    {        
        char buffer[MAX_PATH];
        sprintf(buffer, _T("error connecting database---%s\n"), er.ErrorMessage());
        MsgBox(buffer);
        
        return FALSE;
    }
    catch (...)
    {        
        MsgBox(_T("while connectiong database,it is unknow error!!!"));
    }

    return FALSE;        
}


程序中lpszConnectString参数是肯定正确的,另外调试从不出过这问题,调试环境是XP,但是现在出问题的环境是VSTA,会不会有点关系,另外测试用的5台VSTA机器好象有一台是一直没有问题的,会不会跟这个有关系或者说其中的一些系统设置问题?
希望大家能给点意见或想法,谢谢了



------解决方案--------------------
你连接什么数据库?本地还是远程?
------解决方案--------------------
建议你查询一下权限等机器不同的环境!应该是环境的问题!代码好像没有问题!
------解决方案--------------------
先要定位出错的位置,然后分析一下出错的原因...
vista上面主要是比xp的安全属性要求更高了,你的程序要提升UAC才能有administartor权限,而xp一般默认就会有
------解决方案--------------------
是不是网络不好?或者防火墙?
------解决方案--------------------
探讨
出错我知道,就是连接出错,连接不上 但是多点几次或者重开软件之类的操作多做几次又好了

------解决方案--------------------
把连接时间改为30以上....改善一下你们的网络吧
------解决方案--------------------
试试ODBC能不能连,看看是系统问题还是程序问题,TCP/IP和命名管道都试试,再者就是看看你数据库的权限,新建一个sa,看能不能连。
------解决方案--------------------
建议你查询一下权限等机器不同的环境!应该是环境的问题!代码好像没有问题!
------解决方案--------------------
如果数据库服务器是VISTA的,那就是权限问题,可以试下把数据库服务器放XP系统,应该OK.建议直接在windows 7下开发,呵呵。
------解决方案--------------------
应该是VISTA的权限问题。