sql >> Database >  >> RDS >> Sqlserver

Hoe verbinding maken met Microsoft SQL Server 2008 (MSSQL) vanuit Matlab?

Ik presenteer hieronder een overzicht van de verschillende benaderingen voor toegang tot databases in MATLAB. Hier is een lijst met Stack Overflow-vragen waarvan er enkele werden besproken:

Java

MATLAB heeft een ingebouwde Java JVM, waarmee u direct de kunt aanroepen JDBC-stuurprogramma's van MATLAB. U moet ze eerst beschikbaar maken op de Java classpth in 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();

Database-toolbox

Als u toegang heeft tot de Database Toolbox , het kan het bovenstaande vereenvoudigen omdat het fungeert als een wrapper rond JDBC/ODBC-dingen:

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)

U kunt ook toegang krijgen tot de database via ODBC. Maak eerst een DSN naar MSSQL-server (Control Panel > ODBC Data Sources ), gebruik het dan vanuit de Database Toolbox:

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

COM

U kunt de ADO OLEDB-component van MATLAB direct gebruiken. Eén manier is om een ​​verbindingsreeks op te geven (zonder 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

Ten slotte hebben recente versies van MATLAB de mogelijkheid toegevoegd om op te roepen .NET van MATLAB . U kunt dus de ADO.NET-gegevensproviders gebruiken:

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. COUNT(*) selecteren met DISTINCT

  2. Naamgeving van primaire sleutels id versus something_id in SQL

  3. Hoe werken PostgreSQL security_barrier views?

  4. Hoe laat ik PostgreSQL een rij invoegen in een tabel wanneer deze uit een andere tabel wordt verwijderd?