Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como se conectar ao Microsoft SQL Server 2008 (MSSQL) do Matlab?


Apresento a seguir uma revisão das diferentes abordagens para acessar bancos de dados no MATLAB. Aqui está uma lista de perguntas do Stack Overflow em que algumas delas foram discutidas:

Java


O MATLAB tem uma Java JVM incorporada, permitindo que você chame diretamente o Drivers JDBC do MATLAB. Você primeiro precisa disponibilizá-los no Java classpth no 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();

Caixa de ferramentas do banco de dados


Se você tiver acesso à Caixa de ferramentas de banco de dados , ele pode simplificar o acima, pois atua como um wrapper em torno de coisas 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)

Você também pode acessar o banco de dados por meio de ODBC. Primeiro crie um DSN para MSSQL Server (Control Panel > ODBC Data Sources ), em seguida, use-o na Caixa de ferramentas do banco de dados:
conn = database('myDB', '', '');    %# User/System DSN
%...
close(conn)

COM


Você pode usar diretamente o componente ADO OLEDB do MATLAB. Uma maneira é especificar uma string de conexão (sem 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


Por fim, versões recentes do MATLAB adicionaram a capacidade de chamar .NET do MATLAB . Então você pode usar os provedores de dados 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()