自动完成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
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
"EGIS"="SQL Server"

[HKEY_LOCAL_MACHINE
\SOFTWARE\ODBC\ODBC.INI\EGIS]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Description"="控制中心"
"Server"="122.133.22.111"
"Database"="TestDB"
"LastUser"="TestUser"

 

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

Code A
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
"122.133.22.111"="DBMSSOCN,122.133.22.111,5678"

 

特别说明

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

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

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

转载于:https://www.cnblogs.com/gis_gps/archive/2008/10/16/1313126.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值