什么意思:使用ConnectionTimeout之前,确保连接提供程序和数据源支持该属性

jfx 2004-01-18 11:18:29
我在使用vc开发ADO程序时(sql server)发现ConnectionTimeout不能起作用,查找后发现这样一句话:“注意 在将 ConnectionTimeout 属性合并到数据库应用程序之前,一定要确保连接提供程序和数据源支持该属性”

那么怎么知道连接提供程序和数据源支持该属性,怎样测试呢?
...全文
199 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfx 2004-01-18
  • 打赏
  • 举报
回复
我是这样做的:

_ConnectionPtr m_pConnection;

CoInitialize(NULL);
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->CursorLocation=adUseClient;
m_pConnection->ConnectionTimeout=5;
m_pConnection->Open("Provider=SQLOLEDB.1;Initial Catalog=FPS1101;Data Source=192.168.0.212;Persist Security Info=False","sa","123",adModeUnknown);
zjcxc 元老 2004-01-18
  • 打赏
  • 举报
回复
注意使用顺序问题
先设置
connectiontimeout=0
再打开对象,否则无效
zjcxc 元老 2004-01-18
  • 打赏
  • 举报
回复
计算机未打开时,连接的时间是网络的连接时间.
不是connectiontimeout的时间,所以出现这种情况.


ConnectionTimeout
的单位是毫秒,不是秒.
jfx 2004-01-18
  • 打赏
  • 举报
回复
我说的意思是说要等待60秒左右的样子才能出现连接失败,还有忘了告诉大家了,我上面的Data Source=192.168.0.212 地址是虚拟的根本不存在(相当于该地址计算机关机),不知道这有没有关系,

另外我还测试了一下,如果该地址计算机打开了,虽然数据库名称写错了,也能够很快返回大概不到1秒,这两种情况看起来都不符合ConnectionTimeout
Alicky 2004-01-18
  • 打赏
  • 举报
回复
一般放在打开连接的前面。
如果超过时间还没有连接上为连接失败。
Alicky 2004-01-18
  • 打赏
  • 举报
回复
应该是个连接延时的问题,当值为0时,为无穷大。
zjcxc 元老 2004-01-18
  • 打赏
  • 举报
回复
那应该没问题吧.

你说的不起作用是通过什么判断的?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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