Как подключиться к Microsoft SQL Server 2008 (MSSQL) из Matlab?
Это, вероятно, простой вопрос:
- Как подключиться к Microsoft SQL Server 2008 R2 из Matlab?
- как прочитать таблицу в матрицу с учетом некоторого SQL-запроса?
обновление
Я бы предпочел метод, который не требует использования ручной настройки с помощью ODBC.
1 ответов
ниже представлен обзор различных подходов к доступу к базам данных в MATLAB. Вот список вопросов переполнения стека, где некоторые из них обсуждались:
- как я могу получить доступ к базе данных postgresql из matlab без matlabs database toolbox?
- подключение MATLAB 7.0 и MYSQL
- связь MATLAB SQL Server
- получение имен доступа таблицы базы данных с 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();
Database Toolbox
если у вас есть доступ к Database Toolbox, это может упростить выше, поскольку он действует как обертка вокруг 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
), затем используйте его из панели инструментов базы данных:
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()