自动完成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内容,顺序不可搞乱;
[欢迎转载,但请注明出处]