ado连接数据库出现的有关问题,(求高手解答)
ado连接数据库出现的问题,(求高手解答)
我写的程序是用ado读取数据,但是软件运行后第一个读取的时候有时候连接上有时候连接不上,很不稳定,如果连接上了一直操作是没有问题的,但是放在那过个把小时再去取数据可能又连接不上了,连接的字符串是没有问题的
有时候是读取几次出错后或者是重启动软件就可以连上了,不知道什么原因,下面是连接数据库的函数代码
程序中lpszConnectString参数是肯定正确的,另外调试从不出过这问题,调试环境是XP,但是现在出问题的环境是VSTA,会不会有点关系,另外测试用的5台VSTA机器好象有一台是一直没有问题的,会不会跟这个有关系或者说其中的一些系统设置问题?
希望大家能给点意见或想法,谢谢了
------解决方案--------------------
你连接什么数据库?本地还是远程?
------解决方案--------------------
建议你查询一下权限等机器不同的环境!应该是环境的问题!代码好像没有问题!
------解决方案--------------------
先要定位出错的位置,然后分析一下出错的原因...
vista上面主要是比xp的安全属性要求更高了,你的程序要提升UAC才能有administartor权限,而xp一般默认就会有
------解决方案--------------------
是不是网络不好?或者防火墙?
------解决方案--------------------
------解决方案--------------------
把连接时间改为30以上....改善一下你们的网络吧
------解决方案--------------------
试试ODBC能不能连,看看是系统问题还是程序问题,TCP/IP和命名管道都试试,再者就是看看你数据库的权限,新建一个sa,看能不能连。
------解决方案--------------------
建议你查询一下权限等机器不同的环境!应该是环境的问题!代码好像没有问题!
------解决方案--------------------
如果数据库服务器是VISTA的,那就是权限问题,可以试下把数据库服务器放XP系统,应该OK.建议直接在windows 7下开发,呵呵。
------解决方案--------------------
应该是VISTA的权限问题。
我写的程序是用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的权限问题。