Search code examples
pythonsql-serverwindows-authenticationsql-server-expresspyodbc

Connect to SQL Server Express Database with Python (Windows Authentication)


I've got a Java Program connected to my SQLServer Express Database. The code I used to connect is:

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);
}

I have since decided to use Python instead but can't seem to get it to connect to my database. The code I've been using is:

import pyodbc

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

The error I'm getting is: "pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')"


Solution

  • I got it to work using the following approach:

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