2016-07-20 25 views
2

我想連接到Python中的SQL數據庫,但我很難找到連接到JDBC的文檔/示例。我可以使用以下代碼在MATLAB中執行此操作:在Python和MATLAB中連接到JDBC數據庫

`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實例,在這種情況下,您應該能夠通過pyodbc使用pymssql或適當的ODBC驅動程序。無論如何,如果您澄清當您嘗試使用'jaydebeapi.connect(...)'時看到的錯誤或行爲,這將有所幫助。 –

+0

嗯,所以也許MATLAB使用JDBC,因爲它是基於Java的?如果我嘗試使用pymssql,則會收到此錯誤消息:登錄失敗,DB-Lib錯誤消息20018嚴重性14:\ n一般SQL Server錯誤:檢查來自SQL Server \ nDB-Lib錯誤消息20002,嚴重性9的消息:\ nAdaptive服務器連接失敗(DB:1433)\ n「) – Hobbes

+0

@Jerod,感謝您指引我朝着正確的方向發佈我的解決方案。 – Hobbes

回答

1

我認爲MATLAB需要Java的jdbc驅動程序,但在Python中是不必要的。我的解決方案是使用pyodbc:

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

它看起來並不像pymssql可以通過一個只讀的說法,這就是爲什麼我用pyodbc。