Представям по-долу преглед на различните подходи за достъп до бази данни в MATLAB. Ето списък с въпроси за препълване на стека, където някои от тях бяха обсъдени:
- Как мога да осъществя достъп до база данни postgresql от matlab без кутия с инструменти за база данни matlabs?
- връзка на MATLAB 7.0 и MYSQL
- комуникирайте MATLAB SQL Server
- Получаване на имена на таблици на база данни на Access с Matlab
- Извикване на ADO.NET от MATLAB
Java
MATLAB има вградена Java JVM, която ви позволява директно да извиквате JDBC драйвери от MATLAB. Първо трябва да ги направите достъпни в Java classpth в 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();
Кутия с инструменти за бази данни
Ако имате достъп до Кутия с инструменти за бази данни , може да опрости горното, тъй като действа като обвивка около 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)
Можете също да получите достъп до базата данни чрез ODBC. Първо създайте DSN към MSSQL сървър (Control Panel > ODBC Data Sources
), след това го използвайте от Database Toolbox:
conn = database('myDB', '', ''); %# User/System DSN
%...
close(conn)
COM
Можете директно да използвате компонента ADO OLEDB от MATLAB. Един от начините е да посочите низ за връзка (без 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
И накрая, последните версии на MATLAB добавиха възможност за извикване .NET от MATLAB . Така че можете да използвате доставчиците на данни 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()