使用Python连接到SQL Server Express数据库(Windows身份验证)

时间:2016-12-01 14:31:12

标签: python sql-server windows-authentication sql-server-express pyodbc

我有一个连接到我的SQLServer Express数据库的Java程序。我用来连接的代码是:

Connection con = null;
try {   
    String url = "jdbc:sqlserver://GANESHA\\SQLEXPRESS:1434;databaseName=4YP;integratedSecurity=true";
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection(url);
}

我已经决定使用Python,但似乎无法连接到我的数据库。我一直在使用的代码是:

import pyodbc

con_str = (
    r'Driver = {SQL SERVER};'
    r'Server = .\GANESHA;'
    r'Database = 4YP;'
    r'TrustedConnection = yes;'
)
cnxn = pyodbc.connect(con_str)

我得到的错误是:“pyodbc.Error:('IM002','[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序(0)(SQLDriverConnect)' )“

2 个答案:

答案 0 :(得分:4)

我使用以下方法让它工作:

import pyodbc

con = pyodbc.connect(Trusted_Connection='yes', driver = '{SQL Server}',server = 'GANESHA\SQLEXPRESS' , database = '4YP')

答案 1 :(得分:2)

尝试使用这种方法:

import pyodbc
cnxn = pyodbc.connect(r'Driver={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM myTable")
while 1:
    row = cursor.fetchone()
    if not row:
        break
    print(row.myColumnName)
cnxn.close()