回到首頁
關於我
我的Picasa
留言板
訂閱我的文章
放大字型
原始字型
回到最上層

控制主頁

公告

感謝各位網友的造訪與回應,由於工作的關係實在沒有心力繼續維護這個BLOG。對於各位的留言,有時候真的感到心有餘而力不足,所以沒有回應的部分,還請眾網友們多多包涵。Hans在這邊感謝你們的參與~~ 2011.12.20 Hans

2007年4月10日 星期二

MATLAB 7.1 連接 SQL SERVER 2000 教學

2007 4/10 MATLAB 7.1 連接 SQL SERVER 2000 教學

今天整理專題文件,意外發現的簡單教學文章,所以就整理一下放上來囉!
想當初,第一次接觸MATLAB也是看了很久的英文說明文件才弄起來的!(我英文不好,看原文的說明文很吃力...)

不閒聊了!來看這個很簡單的教學吧!


Step1:首先我們先去 jTDS JDBC Driver 下載JDBC DRIVER,這邊我下載的是jtds 1.2版

下載位置:http://sourceforge.net/project/showfiles.php?group_id=33291

解壓縮後找到jtds-1.2.jar這個檔案,並將它放到C:\Program Files\MATLAB71\java\jarext\底下
(這是預設安裝路徑,如果你不是使用預設路徑,請視實際狀況變更路徑)

然後開啟C:\Program Files\MATLAB71\toolbox\local\classpath.txt這個檔案,加入JDBC的位址
"$matlabroot/java/jarext/jtds-1.2.jar"



Step2:開啟MATLAB的DATABASE TOOLBOX內的VQB


Step3:設定JDBC
NAME 資料庫名稱(輸入要使用的資料庫名稱)
Driver 驅動程式位址,請輸入"net.sourceforge.jtds.jdbc.Driver" 這裡使用JTDS來連SQL SERVER 2000
URL 這邊請輸入"jdbc:jtds:sqlserver://127.0.0.1:1433/" (視情況改變你的資料庫IP及PORT)
資料庫的帳號密碼會另外彈出視窗請你輸入



Step4:執行查詢
現在可以將資料庫的資料匯入到MATLAB囉


(點圖可放大)

備註:jtds-1.2.jar是另一種連接SQL SERVER 2000的JDBC 號稱比微軟出的JDBC效率更高

2007 8/26 補充:以 Matlab 的 M-file 來存取資料庫

為什麼要用M-File?
因為 M-File 才可以對Matlab做更進階的操作。所以我們來看看怎麼用M-File將資料庫載入到MATLAB

在前面的方法,如果我們已經成功的將資料給匯入到MATLAB後,我們在視窗上的選項選:
Query → Generate M-file


這時候就會出現 M-file 的編輯程式裡面就會有已經寫好的程式碼

程式碼:
setdbprefs({'DataReturnFormat','ErrorHandling','NullNumberRead','NullNumberWrite','NullStringRead','NullStringWrite','JDBCDataSourceFile'},{'cellarray','store','NaN','NaN','null','null',''});
conn = database('資料庫名稱','使用者','密碼');
%建立連線

e = exec(conn,'SQL敘述',net.sourceforge.jtds.jdbc.Driver','jdbc:jtds:sqlserver://資料庫IP:PORT/');
%執行SQL敘述

e = fetch(e);
close(e)
close(conn)
%關閉連線

DATA=cell2mat(e.Data);
%這裡我們必須自己新增一個變數來存放載入的資料 "DATA"為我們新增的變數。
%cell2mat 是轉換型別的函數 用來轉換存在 e.Data 的資料
%(更多種的函數請查詢Matlab的Help文件)

執行上面的程式後,我們就可以把資料存到DATA變數裡,以方便我們做後續更多的運算及應用!

接下來我們來看看怎麼把運算好的資料寫回資料庫!

setdbprefs({'DataReturnFormat','ErrorHandling','NullNumberRead','NullNumberWrite','NullStringRead','NullStringWrite','JDBCDataSourceFile'},{'cellarray','store','NaN','NaN','null','null',''});
conn = database('資料庫名稱','使用者','密碼');
%建立連線.

insert(conn,'資料表名稱',{'欄位1','欄位2','欄位3', ... ,'欄位N'},要寫入的資料);
%欄位名稱可以先寫入在一個字串陣列中,用的時候代入變數可以讓程式碼起來較簡單
%要寫入的資料請放在陣列中 insert 函數會將陣列的資料依造你對應的欄位寫入資料庫

執行上面的程式,我們就可以將運算好的資料寫回去資料庫,Matlab存取資料庫就是這麼簡單!

以上就是用Matlab存取資料庫的簡單教學文章!
如果想更深入瞭解Matlab請查閱Help文件,裡面有非常詳細的說明!

謝謝收看!

5 回應:

ROY 提到...

写的很好,太厉害了,能请教大侠一个问题吗,怎么做MATLAB连接SQL数据库实现可视化界面的增删改查及权限管理的B/S模式软件

ROY 提到...

你有MSN或其他联系方式吗?有些问题想请教你一下,可以吗?谢谢了,帮我一下吧

Hans 提到...

ROY 你好,對於Matlab我也是初學者,所以這篇文章是當時的一些心得,我所會的部分也大概只到這個程度,所以你說的部份我不能給你任何支援,真是抱歉

Leon 提到...

大大您好 我是MATLAB的新手

我在搜尋引擎看到您寫的這篇文章

想跟大大您請教幾個問題

如果想藉由MATLAB把FTP上的資料下載下來並讀取其內部資料,用此方法是否能解決

謝謝

Hans 提到...

Leon 你好

我有回信給你喔,請收信~
不管有無收到,都給我一個回應吧~