vb+sqlserver2000连接串中,用标准连接可以,但是用tcp/ip连接时,2分钟不操作就断开连接?
-----------------------------------------------------
非常怪的问题,
vb的连接串连接 ms sqlserver2000,我的连接串是这样的:
connstring = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=dbserver;Password=000000;address=192.168.1.200,1433;network=dbmssocn;"这个串用了几年了,一直没出现过问题,但是前段时间,只有一台winxp的客户机出问题了。
现象是,如果连接操作数据库,比如有查询等操作,没有问题,但是如果有2分钟不操作,再操作时,
就提示
dbnetlib connectionread (recv().)一般性网络错误,(注意:我的程序用的是一个“常连接”对象,即不关闭程序,永远使用一个连接对象。)
我非常不解,几天也找不到原因,今天我想,是不是改一下连接串试试,所以我改成下面的connstring = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=dbserver;Password=000000;"竟然可以了,我开着程序不操作,很长时间不会断开连接,所以可以证明,问题出在连接串。虽然问题好象解决了,但是不是的。
1.我上面第一个连接串,明明是没有问题的,我的程序用了几年了,没有任何机器在连接上出问题,就算这几天,惟一一台机器连接总断的情况下,别的机器也是好的。
2.我的第一连接串,是强行使用 tcp/ip 连接的,而第二个连接串,没有指定,我想默认是通过“命名管道”连接的吧。所以,我初步得到结论,这台特别的机器,用tcp/ip连接不稳定,但是用命名管道却稳定,这是为什么呢?