最近在用VC开发时,遇到一个很蹊跷的问题,因为程序中需要访问SQL Sever 2000数据库系统,所以需要建立与数据库的连接,但是有一次,路由器的断电导致计算机本地连接出现断开,原以为既然我只是访问本地数据库,本地连接是否连上应无多少影响,但是问题恰恰就出在这里,当这时候VC连接数据库的时候,总是弹出对话框
DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒绝访问
点击确定之后,又弹出对话框,再次点击确定时,程序直接退出。
在网上搜索了很多,分析的原因中,很多人认为首要的是1433端口需要打开,因为SQL 2000 的1433版本默认是关闭的,但是1433端口却无法通过设置用软件方式打开,只能下载安装后续的补丁SP3或以上。
从微软官方网站下载SP4,安装的时候却发现总是在即将复制文件的时候,弹出一个吓人的对话框
之后就只能退出,并且原来的2000的服务管理器也提示"无法找到指定文件.....",反复重装,却不得其法。
简直就像噩梦一样挥之不去,最后发现有一篇文章说是,在打补丁的时候,SQL 2000的服务管理器需要停止但不能退出。原来这才是问题的所在,按照该方法,一路操作,好在噩梦没有如期而至,安装成功。
打开命令提示符,输入netstat -an,果然在输出列表里,1433端口显示处于LISTENNING即监听状态。
此时,断开本地连接,再用VC连接数据库时,问题便没有了。
花了一上午的时间,问题终于解决,虽然费了不少周折,但心里还是很高兴。