matlab 連接資料庫Access @ 手 札 :: 隨意窩 Xuite日誌
  • 長門の時計
  • 關鍵字





  • Powered by Xuite
  • Jigokushoujo 2 ED
  • music station
  • 201001221308matlab 連接資料庫Access
    平均分數:0 顆星    投票人數:0
    我要評分:

    轉自 http://kb.cnblogs.com/a/1419522/

    本文演示如何用ODBC數據源的方式連接Matlab和Access數據庫:

    一、使用Windows系統自帶的數據源工具創建基於Access的數據庫。具體步驟是:控制面板--》管理工具--》數據源(ODBC)---》用戶DSN--》添加。創建數據源SampleDB。

    二、在Matlab中連接ODBC數據源:可以使用database工具箱或者代碼編程的方式,下面介紹編程的方式

         1、連接數據庫:

              conn=database( 'SampleDB' , '' , '' )     

          2、測試數據庫是否連接成功

              ping(conn)     

         3、打開游標,並把執行SQL語句

              cursor = exec(conn,'select * from PeopleInfo')

         4、讀取數據,可以從游標中讀取,也可直接讀取

              result=fetch(cursor)

          5、關閉游標和鏈接          

              close(cursor)

              close(conn)

    備註:上面是採用cursor.fetch的方式,也可採用database.fetch的方式

         conn=database(...)
         result=fetch(conn, sqlquery)
         

         而cursor.fetch 的編碼方式是:

         conn=database(...)
         curs=exec(conn, sqlquery)
         curs=fetch(curs)

          result = curs.Data

     

     

    轉自: http://hans0713.blogspot.com/2007/04/matlab-71-sql-server-2000.html

    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文件,裡面有非常詳細的說明!

    回應