Tôi trình bày dưới đây một đánh giá về các cách tiếp cận khác nhau để truy cập cơ sở dữ liệu trong MATLAB. Dưới đây là danh sách các câu hỏi về Stack Overflow trong đó một số câu hỏi đã được thảo luận:
- Làm cách nào để truy cập cơ sở dữ liệu postgresql từ matlab mà không có hộp công cụ cơ sở dữ liệu matlabs?
- kết nối của MATLAB 7.0 và MYSQL
- giao tiếp MATLAB SQL Server
- Lấy tên các bảng cơ sở dữ liệu Access bằng Matlab
- Gọi ADO.NET từ MATLAB
Java
MATLAB có Java JVM được nhúng, cho phép bạn gọi trực tiếp Trình điều khiển JDBC từ MATLAB. Trước tiên, bạn cần cung cấp chúng trên Java classpth trong MATLAB:
javaclasspath('sqljdbc4.jar');
%# load driver and create connection
driver = com.microsoft.sqlserver.jdbc.SQLServerDriver;
conn = driver.connect('jdbc:sqlserver://<HOST>:<PORT>;databaseName=<DB>');
%# query database
q = conn.prepareStatement('select * from <TABLE>');
rs = q.executeQuery();
while rs.next()
char(rs.getString(0))
end
rs.close();
conn.close();
Hộp công cụ cơ sở dữ liệu
Nếu bạn có quyền truy cập vào Hộp công cụ cơ sở dữ liệu , nó có thể đơn giản hóa những điều trên vì nó hoạt động như một trình bao bọc xung quanh nội dung JDBC / ODBC:
conn = database('<DB>', '<USER>','<PASS>', ...
'com.microsoft.sqlserver.jdbc.SQLServerDriver', ...
'jdbc:sqlserver://<HOST>:<PORT>;database=<DB>');
curs = exec(conn, 'select * from <TABLE>');
curs = fetch(curs);
curs.Data
close(curs)
close(conn)
Bạn cũng có thể truy cập cơ sở dữ liệu thông qua ODBC. Trước tiên, hãy tạo một DSN tới Máy chủ MSSQL (Control Panel > ODBC Data Sources
), sau đó sử dụng nó từ Hộp công cụ cơ sở dữ liệu:
conn = database('myDB', '', ''); %# User/System DSN
%...
close(conn)
COM
Bạn có thể sử dụng trực tiếp thành phần ADO OLEDB từ MATLAB. Một cách là chỉ định một chuỗi kết nối (không có DNS):
conn = actxserver('ADODB.Connection');
conn.Open('Provider=sqloledb;Data Source=<HOST>;Initial Catalog=<DB>;User Id=<USER>;Password=<PASS>;');
conn.Execute('select * from <TABLE>').GetRows
conn.Close()
.NET
Cuối cùng, các phiên bản gần đây của MATLAB đã thêm khả năng gọi .NET từ MATLAB . Vì vậy, bạn có thể sử dụng các nhà cung cấp dữ liệu ADO.NET:
import System.Data.SqlClient.*
NET.addAssembly('System.Data');
conn = SqlConnection('Data Source=<HOST>;Initial Catalog=<DB>');
conn.Open();
q = SqlCommand('select * from <TABLE>', conn);
r = q.ExecuteReader();
while r.Read()
char(r.GetString(0))
end
r.Close()
conn.Close()