用脚本添加ODBC数据源

作者:

Excel、Matlab 在与数据库交互数据时,通常需要事先配置好 ODBC 数据源,这导致一个文件换到另一台机器还需要重新配置 ODBC。手工配置太麻烦,从国外一个网站看到一种解决方案:

运行 regedit ,展开到 HKEY_CURRENT_USER\Software\ODBC\ODBC.INI ,导出所有该目录下所有注册项,保存为.reg 文件,然后换台机器运行该 reg 文件即可。

也可以自己直接编辑注册表脚本。比如下面定义了一个 SQL 的数据源:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"%sql_odbc_name%"="SQL Server"

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\%sql_odbc_name%]
"Driver"="C:\WINDOWS\system32\SQLSRV32.dll"
"Description"="%sql_odbc_name%"
"Server"="%sql_server_address%"

Oracle 数据库的脚本定义稍微复杂点,但思路也差不多。模板见下面文件(需替换所有%%变量)

[download id="13"]

如需在 Matlab 里直接执行注册表脚本,只需在 command line 或者 m 文件里使用 winopen('abc.reg')即可。

Q. E. D.

类似文章:
没有人敢说 Matlab 的帮助文件不够详细和全面,但 Matlab 里面的确存在一些功能和函数,你很难找到它的帮助文档。下面列举一些,以后碰到其它的也会放到这里来:
上次说起 遇到两个 Matlab 的效率问题 ,还剩下 save , load 没说。不过这个问题的结论挺简单的,就是在 save 的时候尽量指定使用-v6 选项。
最近用 Matlab 写了个东西,运行效率不如我意。用 Profiler 跟踪了一下,结果让我大吃一惊。其中三分之一的时间花费在 datestr 这个函数上,六分之一的时间花费在 save 和 load 数据上。这里先谈前一个问题,关于 save 和 load 的效率以后再谈。
本文结论: 不要过度担心 Matlab 的传值调用的效率问题。
最近写了一些 Matlab 程序,想起以前想过的一个东西,记录一下。
现在相机的像素实在是太高了,上次 去泰山玩 ,朋友的 1200 万像素的 D90 照出来的照片分辨率高达 4288×2848 ,即使转为 jpg 格式,每张都在 5M 以上。而现在电脑屏幕的分辨率最高也在 1920 以下吧,超高分辨率的照片除了打印大照片之外没什么用处,反而不方便传输、流通、保存。
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。