pythonsql-serverpython-3.xpypyodbc

Python to SQL Server connection


I'm using Python 3.5.1 with Anaconda package 2.4.0 and try to make a connection to local SQL Server (2008 R2)

So doing the next things:

import pypyodbc
connection_string =pypyodbc.connect('Driver={SQL Server};Server=PC\MSSQLSERVER,1433;Database=localbase;Uid=name;Pwd=pass')
connection_string=connection_string.decode(encodind='utf-8',errors='replace')

After all the manipulations, receive the error:

'utf-32-le' codec can't decode bytes in position 0-1: truncated data

Why's that and what should I perform to avoid it and run the connection properly?


Solution

  • You seem to have misunderstood what a "connection string" is. It is the text string that you pass to the .connect method, not what is returned from the .connect method. (What gets returned is a connection object.)

    So, you need to do something more like this:

    import pypyodbc
    connection_string = "DRIVER={SQL Server};SERVER= ...(and so on)..."
    conn = pypyodbc.connect(connection_string)
    crsr = conn.cursor()
    crsr.execute("SELECT stuff FROM tablename")
    # etc.