自动完成ODBC中DSN设置

背景

  今天遇到一个问题,项目中有一台SQL Server数据库服务器,考虑到安全性,决定将基缺省的1433端口改为5678。众所周知,SQL Server服务器缺省端口改变后,各个客户端的连接也要进行对应的修改,如通过配置ODBC数据源的方式。但考虑到客户计算机水平较弱,可能不能顺利地独自完成ODBC数据源的配置,于是决定找一个傻瓜式的方法帮助客户完成ODBC数据源配置,从而让客户毫无困难完成此次升级过程。

解决方法

1.根据上面的问题,我首先想到ODBC数据源中DSN配置会涉及到注册表操作,通过在网络上查找一些资料,果不其然,证明了这一想法。简单来说,你手工通过"控制面板--管理工具--数据源(ODBC)--系统DSN--新建"这样的操作,最终会在注册表两处留下痕迹,它们分别是:

  1)HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\***

  2)HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\

你可以将下面的内容导入到你的注册表,然后你再看一看,数据源ODBC中发生了什么?你就会明白数据源ODBC对注册表的操作。

Code B

 

2.如果只是为了利用注册表自动创建一个ODBC数据源,那大可不必浪费这么多时间写下以上内容。因为对于本次问题来说,最关键是要解决客户端ODBC数据源中如何指定动态端口。比如我们原来手工操作,是可以在刚才创建的EGIS这个数据源中指定动态端口5678,当然你也可以用注册表方式来自动实现,相关内容如下:

Code A

 

特别说明

1) 上述醒目表示的红色字体一定要内容都相同,否则通过导入注册表的方式就无法创建符合要求的ODBC数据源;

2) 导入注册表顺序:先导入code A中内容,再导入code B内容,顺序不可搞乱;

[欢迎转载,但请注明出处]

posted @ 2008-10-16 23:48  守护心中彩虹  阅读(876)  评论(0编辑  收藏  举报