2016-07-20 4 views
2

Я пытаюсь подключиться к базе данных SQL в Python, но мне сложно найти документацию/примеры подключения к JDBC. Я могу сделать это в MATLAB, используя следующий код:Подключение к базе данных JDBC в Python и MATLAB

`Name = 'ServerName'; 
Username = ''; 
Password = ''; 
Server = ['jdbc:sqlserver://ServerName:1433;'... 
    'database=DB;',... 
    'applicationIntent=ReadOnly;',... 
    'integratedSecurity=true;']; 
Connection = database('DB',Username , Password,... 
    'com.microsoft.sqlserver.jdbc.SQLServerDriver', Server);` 

Я хотел бы сделать это в Python. Из-за JDBC я не думаю, что могу использовать pymssql или pyodbc (я пробовал). Я пытался, так и не удалось, используя следующее:

`import jaydebeapi 
conn = jaydebeapi.connect('com.microsoft.sqlserver.jdbc.SQLServerDriver', 
    [Server , Username,Password])` 

Любая помощь в реализации этого в Python было бы здорово, спасибо!

+0

Чтобы уточнить, JDBC - это API/стандарт, а не база данных. Похоже, вы подключаетесь к экземпляру MS SQL Server, и в этом случае вы можете использовать pymssql или соответствующий драйвер ODBC через pyodbc. Несмотря на это, это поможет, если вы уточните, какие ошибки или поведение вы видите, когда пытаетесь «jaydebeapi.connect (...)». –

+0

Хм, может быть, MATLAB использует JDBC, потому что он основан на Java? Если я пытаюсь использовать pymssql, я получаю это сообщение об ошибке: login failed, сообщение об ошибке DB-Lib 20018, серьезность 14: \ nОбщая ошибка SQL Server: проверьте сообщения из сообщения SQL2 сервера SQL Server \ nDB-Lib, серьезность 9: \ nAdaptive Не удалось подключиться к серверу (DB: 1433) \ n ") – Hobbes

+0

@ Jerod, спасибо, что указал мне в правильном направлении. Я отправил свое решение. – Hobbes

ответ

1

Я думаю, что для MATLAB требуется драйвер jdbc из-за Java, но это не нужно в Python. Мое решение использует pyodbc:

conn = pyodbc.connect(driver='{SQL Server}', host=Server,  database=DB, 
        trusted_connection='yes', Username ='', Password='', readonly = True) 

Это не выглядит как pymssql может передать ReadOnly аргумент, поэтому я использую pyodbc.