MSSQL in python 2.7

90,269

Solution 1

You can also use pyodbc to connect to MSSQL from Python.

An example from the documentation:

import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
    print row.user_id, row.user_name

The SQLAlchemy library (mentioned in another answer), uses pyodbc to connect to MSSQL databases (it tries various libraries, but pyodbc is the preferred one). Example code using sqlalchemy:

from sqlalchemy import create_engine
engine = create_engine("mssql://me:pass@localhost/testdb")
for row in engine.execute("select user_id, user_name from users"):
    print row.user_id, row.user_name

Solution 2

If you're coming across this question through a web search, note that pymssql nowadays does support Python 2.7 (and 3.3) or newer. No need to use ODBC.

From the pymssql requirements:

Python 2.x: 2.6 or newer. Python 3.x: 3.3 or newer.

See http://pymssql.org/.

Solution 3

Install pyodbc using pip as follows: pip install pyodbc

import pyodbc
cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=SOME-PC;DATABASE=my_db")
cursor = cnxn.cursor()


cursor.execute("insert into test_tb values(6, 'name')")

cursor.execute("select id, name from my_tb")
rows = cursor.fetchall()
for row in rows:
    print row.id, row.name

For details, see

https://github.com/mkleehammer/pyodbc/wiki

Solution 4

You can try out SQLAlchemy: The SQLAlchemy Object Relational Mapper presents a method of associating user-defined Python classes with database tables, and instances of those classes (objects) with rows in their corresponding tables.

You can refer following links: 1> http://www.sqlalchemy.org/docs/ 2> http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html

Share:
90,269
Shashi
Author by

Shashi

Updated on July 09, 2022

Comments

  • Shashi
    Shashi almost 2 years

    Is there a module available for connection of MSSQL and python 2.7?

    I downloaded pymssql but it is for python 2.6. Is there any equivalent module for python 2.7?

    I am not aware of it if anyone can provide links.


    Important note: in the meantime there is a pymssql module available. Don't miss to read the answer at the end of this page: https://stackoverflow.com/a/25749269/362951

  • StartupGuy
    StartupGuy about 7 years
    This pip install no longer seems to work (Ubuntu 16.04, Python 2.7.): --compile failed with error code 1 in ...
  • Gord Thompson
    Gord Thompson about 7 years
    @MichaelMügge - pip install pyodbc works fine on Ubuntu 16.04 if you do sudo apt install unixodbc-dev first.
  • StartupGuy
    StartupGuy about 7 years
    @GordThompson, Indeed. Important detail there. Thanks.
  • riffrazor
    riffrazor over 5 years
    From the MSFT python MSSQL driver page ( docs.microsoft.com/en-us/sql/connect/python/… ) "There are several python SQL drivers available. However, Microsoft places its testing efforts and its confidence in pyodbc driver. " I doubt this was the case in 2014 though:)