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.