Mar 222011
 
This entry is part 2 of 20 in the series Matlab数据库基础班

通过Matlab连接SQL Server(mySQL也差不多)的方法其实很简单。

首先在Windows的ODBC数据源管理器中设置好服务器的地址,具体做法就是在"用户DSN"页面中添加SQL Server,然后在弹出的窗口中设置好名称(例如macro2)、服务器地址,至于密码等等则不一定需要,因为Matlab中需要另外输入密码 。

打开Matlab,运行querybuilder,在左边的"Data Source"里面应该可以看到"macro2"。点击,如果数据库有密码,则输入密码,否则直接就可以看到数据库中的table显示在querybuilder的tables中。

值得一提的是,和SAS等不同,Matlab可能将一些不是table的信息(如index等)也显示在tables中。

点击其中一个table名称,在Fields中就可以看到字段啦。选择需要导出的字段,当然还可以点击 where、 Group by、等等来限定需要导出数据的条件。

最后必须做的是在" workspace variable"栏中输入用于导出数据的变量名称。点击, Execute即可导出数据。

总体而言导出的速度还可以,(由于Matlab通过Java间接连接ODBC数据库,比直接连接,如SAS等软件慢一些)。我下载2011年1月份的上证综指每6秒钟取样一次的高频交易数据,用来约15秒钟,在Matlab中的变量占用83M的空间。

PS:

如果你是x64的Matlab软件,那么恭喜你了,此路不通。

详见: http://www.mathworks.com/matlabcentral/newsreader/view_thread/261737

对于x64系统,最好就用JDBC吧:

 

另外附上我测试用的平台信息:

Dell E4200, 5GB Ram, Win7 x64 Professional. 安装的软件是:

Matlab 2010B, x64 位,连接ODBC数据库失败;
Matlab 2010A, 32 位,连接ODBC数据库成果。

No related posts.

Series Navigation<< [置顶]Matlab数据库应用班110327-Matlab通过JDBC连接SQL Server >>
Bookmark/FavoritesSina WeiboGoogle+FacebookQQTwitterYahoo BookmarksBaiduDiggEmailGoogle GmailOutlook.comEvernotePrintAIMLinkedInBlogger PostKindle ItOrkutShare

Related Posts:

  2 Responses to “110322-Matlab通过ODBC连接SQL Server”

  1. Note
    If you receive this message:
    Invalid string or buffer length.

    you may be using the wrong driver.

    For nearly all databases, you must use JDBC drivers with 64-bit machines. The only exceptions are 64-bit Access 2010 and 64-bit Oracle 11g Release 2. You can use 64-bit ODBC drivers for these databases.

    悲剧。
    我去试试ls的

  2. 试试adodb?我发现adodb要比odbc快一些,而且不用设置odbc

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>