【问题标题】:Connecting to a JDBC database in Python vs. MATLAB在 Python 与 MATLAB 中连接到 JDBC 数据库
【发布时间】:2016-11-24 05:16:36
【问题描述】:

我正在尝试使用 Python 连接到 SQL 数据库,但我很难找到连接到 JDBC 的文档/示例。我可以使用以下代码在 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 中实现此功能的任何帮助都会很棒,谢谢!

【问题讨论】:

  • 澄清一下,JDBC 是一种 API/标准,而不是数据库。看起来您正在连接到 MS SQL Server 实例,在这种情况下,您应该能够通过 pyodbc 使用 pymssql 或适当的 ODBC 驱动程序。无论如何,如果您在尝试jaydebeapi.connect(...) 时澄清您看到的错误或行为,将会有所帮助。
  • 嗯,也许 MATLAB 使用 JDBC 因为它是基于 java 的?如果我尝试使用 pymssql,我会收到以下错误消息:登录失败,DB-Lib 错误消息 20018,严重性 14:\n一般 SQL Server 错误:检查来自 SQL Server 的消息\nDB-Lib 错误消息 20002,严重性 9:\n自适应服务器连接失败 (DB:1433)\n")
  • @Jerod,感谢您为我指明了正确的方向。我发布了我的解决方案。

标签: python database jdbc jaydebeapi


【解决方案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 的原因。

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 2015-04-01
    • 2021-08-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2017-04-18
    相关资源
    最近更新 更多