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

sffofn 2009-04-09 04:15:11
加精
我写的程序是用ado读取数据,但是软件运行后第一个读取的时候有时候连接上有时候连接不上,很不稳定,如果连接上了一直操作是没有问题的,但是放在那过个把小时再去取数据可能又连接不上了,连接的字符串是没有问题的
有时候是读取几次出错后或者是重启动软件就可以连上了,不知道什么原因,下面是连接数据库的函数代码

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机器好象有一台是一直没有问题的,会不会跟这个有关系或者说其中的一些系统设置问题?
希望大家能给点意见或想法,谢谢了

...全文
800 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmjhl 2010-04-14
  • 打赏
  • 举报
回复
你的连接超时设置60秒?太长了吧
LC3030 2009-07-16
  • 打赏
  • 举报
回复
学习学习
huangfufu789 2009-04-12
  • 打赏
  • 举报
回复
学知网是个有5000G学习资料的下载网站,注册后可免费下载以下资料:
[目录]电脑网络|计算机视频|高校全系列视频课程|清华大学计算机网络课程
[文件]研究生同等学历_计算机系统结构.is
[地址]http://www.stuknow.com/downlist/10002/0f1914d8a0fa3e533694011e5185c4e1.htm?popid=fufufu0000


huangfufu789 2009-04-12
  • 打赏
  • 举报
回复
.学知网是个有5000G学习资料的下载网站,注册后可免费下载以下资料:
.[路径]电脑网络-计算机教程-计算机教程3-嵌入式系统相关资料-EmbeddedSystem-嵌入式操作系统-BootLoader-u-boot-u-boot-0.3.0-u-boot-0.3.0-common
.[地址]http://www.stuknow.com/dirlist/10002/afbdc179fe2eee274844690ed7a329a3.htm?popid=fu0000


很好的一个网页来的..大家有空可以去看看.....有很多资料下载的....
jayzwh2006 2009-04-12
  • 打赏
  • 举报
回复
学习
Cskl1 2009-04-11
  • 打赏
  • 举报
回复
学习下,,,,
Cskl1 2009-04-11
  • 打赏
  • 举报
回复
学习下,,,,
nettman 2009-04-11
  • 打赏
  • 举报
回复
看是否数据库设置的连接时间有问题!
ffchou1987 2009-04-11
  • 打赏
  • 举报
回复
学习下
ffchou1987 2009-04-11
  • 打赏
  • 举报
回复
学习
wsz6286651 2009-04-11
  • 打赏
  • 举报
回复
学习
abc2455 2009-04-11
  • 打赏
  • 举报
回复
学习下
spy1024 2009-04-10
  • 打赏
  • 举报
回复
把连接时间改为30以上....改善一下你们的网络吧
hezechao1989 2009-04-10
  • 打赏
  • 举报
回复
路过 up
yidongji2008 2009-04-10
  • 打赏
  • 举报
回复
是网络不好吧!
lwtbysj 2009-04-10
  • 打赏
  • 举报
回复
学习下
daipig 2009-04-10
  • 打赏
  • 举报
回复
总的来说就是我数据库正常打开,测试的没有问题的,如果故意关了,只会出现 error connecting database-的提示

在VSTA的本本通常第一次就出错(数据库是正常打开的),出现error connecting database- 和while connectiong database,it is unknow error错误,提示不一样所以我想会不会是哪的设置出了问题, 测试用的SQL 2000是开发版, VSTA连的时候是企业版的,没什么关系吧
而且我测试的5个本本中,好象有个是一直没有问题的,所以我想是不是VSTA上有什么需要设置的, 由于不在现场了,不能及时调试了(5个本本都是刚拿出来的,没有怎么设置),大家给个建议或想法就行
sffofn 2009-04-10
  • 打赏
  • 举报
回复
就是上面说的一个提示和2个提示;了
sffofn 2009-04-10
  • 打赏
  • 举报
回复
我自己的机子是没有问题的,不会出错,但是我在测试的时候故意把数据库关了,只出现了连接的错误就没了
在VSTA的本本上运行这个远程访问,时连上时连不上,而且出错了就是2个,还出现了个错误
sffofn 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sffofn 的回复:]
测试的时候出现这个错误sprintf(buffer, _T("error connecting database---%s\n"), er.ErrorMessage());
但是如果在VSTA那测试 如果出错了 还会弹出while connectiong database,it is unknow error!!!"));
[/Quote]
我说的测试我是在本机上把数据库关掉了,不开数据库时间出的错误,但是打开数据库,正常的,如果没连上则会多上一个错误
加载更多回复(22)

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧