Matlab中使用ADODB访问数据库

作者:

Matlab 的 database 工具箱只支持 ODBC 数据库连接,在使用之前需要先设置 ODBC 数据源。之前在 Excel 里用的是 ADODB ,使用 ADODB 的好处是无需设置 ODBC 源,似乎效率也要高一些(但我一直没弄懂 ADODB 是什么东西,所以效率这东西我也说不清)。

后来在 Matlab central 上查了下,原来 Matlab 可以通过调用 activex 的方式使用 ADODB。然后我照着别人的例子封装成了一个类。简单的测试发现这种方法比封装的 database 要快 4 倍。

下载地址

使用这个类就很简单了,比如如果手头已有数据库的连接字符串,可以这么调用:

ado = adodb;
res = ado.query('select * from sys', ...
    'Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;');

或者直接提供数据库信息

ado = adodb;
res = ado.query(sql, {database_type, server_name_or_ip, ...
    database_name, user, password});

更详细使用方法可在下载后 help adodb。

Q. E. D.

类似文章:
2014-03-25 更新:我已经将该类修改成函数形式,并增加新功能,参见 更新 Excel 的数据库查询函数库
Excel 的数据透视表是一个很好用的功能,我写了一个 Matlab 版本,在处理上和 Excel 的透视表差不多,还差一个 filter 而已。
这个 Excel 模板使用 参数法和历史法 计算资产组合的 VaR ,两个函数分别是 ParaVaR 和 HistVaR ,是以前写的 VaR Primer 的一个实现。具体使用方法可参考模板以及 VBA 的代码注释。
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
我写了一个期权到期收益结构的 Excel 模板。欢迎大家无聊的时候使用。
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
编程 » dll, Matlab, VB
这里放两个在实际工作中遇到的问题,还没找到解决的方法,向广大网友求助。