|
最近由于新的GSP开始实施,原有的软件需要变更,坐在家里开始修改编程。
原来的软件是购买的,无法二次开发和改编,只能借用数据库进行外部开发,为了快捷,采用我最熟悉的VB。
作为测试,用ACCESS做了一个远程数据库的链接,链接需要修改的表,然后做窗体和报表的设计,先看看效果。
数据库和表的远程链接很快,当天就做了两个窗体一个报表,还是比较满意,所以准备大量赶工。但问题来了,由于原来的数据库表字段不够,需要添加不少,所以开始的时候都是采用远程登录服务器,然后再打开服务器上的SQL Server Management Studio对数据库表进行修改和添加。如此频繁的登录服务器毕竟不是好事,既然ACCESS能远程链接,那么SQL Server Management Studio肯定也可以,而且官方明确说明可以。
在本地计算机上启动SQL Server Management Studio,在服务器名称里输入 IP地址:端口号\实例名,然后输入sa和密码,点击连接,时间不大返回错误,error26。
不对啊,跟ACCESS的设置完全一样,怎么它行SQL Server Management Studio不行呢?也许是ACCESS正在打开状态,占用了服务器的端口?很有可能,关闭ACCESS,再试,还是错误。
本地计算机关机重启,还是错误。
好吧,百度一下,千篇一律,都是SQL2005的,而我是2008,应该问题不大。对照检查完全一样,还是错误。继续查,有人说如果用路由器访问,需要在路由器上映射一下。???这不瞎扯嘛 ,找遍路由器也没有相关的映射。断开路由,直接访问网络,还是错误。
服务器上的TCP/IP已经打开,端口也设定了,命名管道也打开,别名也设了,还是错误。
有人说字符串错误,应该是 IP地址:端口号\\实例名,好吧,照做,还是错误。
下面开始了各种测试:
IP地址:端口号 ,错误,这回是找不到服务器名,说明还的用实例名。
IP地址:端口号/实例名,错误,这回是error25,命名管道错误。
IP地址:端口号//实例名,错误,这回是字符串错误。
查看SQL的帮助,用 IP地址:端口号_实例名,错误,error40,字符串错误。
http://IP地址:端口号_实例名,http://IP地址:端口号/实例名,http://IP地址:端口号//实例名,依旧错误。error26、25、40轮番出现。
郁闷死了,一个上午什么事也没干,到中午还没连接上,而且不得要领,比修任何机器耗时都长。
回到比较靠谱的连接上:IP地址:端口号\\实例名,字符串错误。既然是字符串错误,一定是写错了什么。确认都是用英文半角输入的,不存在字符错误。ACCESS能链接是怎么回事呢?
还好ACCESS没有删除,DNS文件还在,用记事本打开DNS链接文件,结果显示:
[ODBC]
DRIVER=SQL Server
UID=sa
PWD=*********
Address=181.132.***.148,1830
Network=DBMSSOCN
DATABASE=TEST
WSID=********
SERVER=181.132.***.148
全部问题显现,Address=181.132.***.148,1830!!!我在ACCESS里面输入的可是181.132.***.148:1830,而在DNS文件里面显示的却是181.132.***.148,1830,竟然不是冒号而是逗号。
好吧,在SQL Server Management Studio的服务器名称里输入 IP地址,端口号//实例名,点击连接顺利登陆,速度竟然比远程桌面还要快。
该死的逗号,输入的是冒号,凭什么你给转成逗号不告诉呢?
微软一向不守规矩,这几乎是共识了。VB的各个版本,VC的各个版本,foxpro和ACCESS的各个版本,语句的用法,特别是引号的用法都不一样,经常搞得程序员云山雾罩的。
好了,牢骚发完,接着干活去。