Saltar al contenido

Conexión a SQL Server 2012 usando sqlalchemy y pyodbc

Ya no busques más por otros sitios porque has llegado al espacio correcto, poseemos la respuesta que necesitas y sin problema.

Solución:

El DSN basado en archivos string está siendo interpretado por SQLAlchemy como nombre de servidor = cnombre de la base de datos = users.

Prefiero conectarme sin usar DSN, es una tarea de configuración menos con la que lidiar durante las migraciones de código.

Esta sintaxis funciona con la autenticación de Windows:

engine = sa.create_engine('mssql+pyodbc://server/database')

O con autenticación SQL:

engine = sa.create_engine('mssql+pyodbc://user:[email protected]/database')

SQLAlchemy tiene una explicación detallada de las diferentes conexiones string opciones aquí.

En Python 3 puedes usar la función quote_plus del módulo urllib.parse para crear parámetros para la conexión:

import urllib
params = urllib.parse.quote_plus("DRIVER=SQL Server Native Client 11.0;"
                                 "SERVER=dagger;"
                                 "DATABASE=test;"
                                 "UID=user;"
                                 "PWD=password")

engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=".format(params))

Para utilizar la autenticación de Windows, desea utilizar Conexión_de_confianza como parámetro:

params = urllib.parse.quote_plus("DRIVER=SQL Server Native Client 11.0;"
                                 "SERVER=dagger;"
                                 "DATABASE=test;"
                                 "Trusted_Connection=yes")

En Python 2 deberías usar la función quote_plus de la biblioteca urllib en cambio:

params = urllib.quote_plus("DRIVER=SQL Server Native Client 11.0;"
                           "SERVER=dagger;"
                           "DATABASE=test;"
                           "UID=user;"
                           "PWD=password")

Tengo información actualizada sobre la conexión a MSSQL Server sin usar DSN y usando la autenticación de Windows. En mi ejemplo, tengo las siguientes opciones: el nombre de mi servidor local es “(localdb)ProjectsV12”. Nombre del servidor local que veo en las propiedades de la base de datos (estoy usando Windows 10/Visual Studio 2015). Mi nombre de base de datos es “MainTest1”

engine = create_engine('mssql+pyodbc://(localdb)ProjectsV12/MainTest1?driver=SQL+Server+Native+Client+11.0', echo=True)

Es necesario especificar el controlador en la conexión. Puede encontrar su versión de cliente en:

panel de control>Sistemas y seguridad>Herramientas administrativas.>Orígenes de datos ODBC>ficha DSN del sistema>Agregar

Mire la versión del cliente nativo de SQL de la lista.

Calificaciones y comentarios

Si para ti ha sido de utilidad este post, agradeceríamos que lo compartas con el resto seniors de esta manera contrubuyes a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *