sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan opretter man forbindelse til Microsoft SQL Server 2008 (MSSQL) fra Matlab?

Jeg præsenterer nedenfor en gennemgang af de forskellige tilgange til at få adgang til databaser i MATLAB. Her er en liste over Stack Overflow-spørgsmål, hvor nogle af dem blev diskuteret:

Java

MATLAB har en indlejret Java JVM, så du direkte kan ringe til JDBC-drivere fra MATLAB. Du skal først gøre dem tilgængelige på Java classpth i 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();

Databaseværktøjskasse

Hvis du har adgang til databaseværktøjskassen , det kan forenkle ovenstående, da det fungerer som en indpakning omkring JDBC/ODBC-ting:

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)

Du kan også få adgang til databasen via ODBC. Opret først en DSN til MSSQL-server (Control Panel > ODBC Data Sources ), og brug det derefter fra Database Toolbox:

conn = database('myDB', '', '');    %# User/System DSN
%...
close(conn)

COM

Du kan direkte bruge ADO OLEDB-komponenten fra MATLAB. En måde er at angive en forbindelsesstreng (DNS-less):

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

Endelig tilføjede nyere versioner af MATLAB muligheden for at kalde .NET fra MATLAB . Så du kan bruge ADO.NET-dataudbyderne:

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()



  1. Sådan testes min ad-hoc SQL med parametre i Postgres forespørgselsvindue

  2. er PDO::PARAM_INT overflødig?

  3. Sådan indsætter og henter du billede fra PostgreSql ved hjælp af C#

  4. Hvordan opretter man en midlertidig tabel i SQL?