Existem vários métodos para se conectar no banco de dados SQL Server através da linguagem Python, você pode criar uma conexão usando módulos escritos por terceiros como o pyMSSQL, você pode usar as biblioteca win32 através do modulo pyWin32 ou você se conectar usando o framework e ADO.NET usando o IronPython. Neste post usaremos o pyWin32 Extension para executar este trabalho, você pode baixar esta extensão no seguinte site:
Download: http://sourceforge.net/projects/pywin32/
Conectando ao Microsoft SQL Server
1 – Após baixar e instalar a extensão para o Python Win32 você precisa criar uma conexão ODBC para SQLSERVER, você pode optar por uma conexão ODBC win32 ou x64, para isto acesse o painel de controle, ferramentas administrativas e fontes de dados ODBC e preencha e teste a conexão com o seu servidor MSSQL:
2 – Abra sua IDE Python e utilize o código abaixo.
Exemplo:
Neste exemplo construiremos uma conexão com o banco de dados SQL Server através da extensão pyWin32 e utilizaremos um DNS ODBC para criar uma conexão com o banco de dados.
Python
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# ConexaoMSSQL.py
# importa modulos
from Tkinter import *
import tkMessageBox
import odbc
# Cria formulario
formulario = Tk(className='Microsoft SQL Server')
formulario.geometry("300x200+300+300")
# Cria janela para menssagem
janela = Tk()
janela.wm_withdraw()
# Evento para o botão
def conectar():
# Cria string de conexão
sconexao = edb.get() + "/" + eusuario.get() + "/" + esenha.get()
try:
con = odbc.odbc(sconexao)
tkMessageBox.showinfo(title="Menssagem", message="Conectado com Sucesso!", parent=janela)
except ValueError:
tkMessageBox.showinfo(title="Menssagem", message="Erro de Conexão", parent=janela)
# Cria componentes
titulo = Label(formulario, text="MSSQL Express 2012 - Python")
lusuario = Label(formulario, text="Digite seu usuário:")
lsenha = Label(formulario, text="Digite sua senha:")
ldb = Label(formulario, text="Digite o DNS ODBC:")
eusuario = Entry(formulario)
esenha = Entry(formulario, show="*")
edb = Entry(formulario)
botao = Button(formulario, text="Conectar", command=conectar)
# Cria layout de tela
titulo.grid(row=0, sticky=W+E+N+S, pady=10)
lusuario.grid(row=1, sticky=W, padx=20)
eusuario.grid(row=1, column=1, pady=5)
lsenha.grid(row=2,sticky=W, padx=20)
esenha.grid(row=2, column=1, pady=5)
ldb.grid(row=3, sticky=W, padx=20)
edb.grid(row=3, column=1, pady=5)
botao.grid(row=5, sticky=W, pady=20, padx=20)
# Loop do tcl
mainloop()



