ProgrammingError se connectant à Azure à l'aide de python pypyodbc

J'essaie de me connecter à Azure (server mssql) en utilisant Python et pypyodbc, mais j'obtiens un message d'erreur qui lit "pypyodbc.ProgrammingError: ('', 'SQL_ERROR')"

J'ai essayé plusieurs façons de faire la connection, mais cela donne la même erreur à chaque fois. En utilisant Tableau par exemple, je peux accéder à la database, mes informations d'identification fonctionnent donc.

pypyodbc.connect("DRIVER={SQL Server};server='tcp:mssql-server',Database='analytics',uid='me@analytics',pw='secret'") 

ou

 pypyodbc.connect('Driver={SQL Server};Server=tcp:mssqlserver;Database=analytics;UID=me@analytics;PWD=secret') 

ou

 pypyodbc.connect('Driver={SQL Server};Server=tcp:mssqlserver;Database=analytics;Uid=me@analytics;Pwd=secret;') 

Et pas mal d'autres qui ressemblent à ceci, mais avec des types de citation différents, des capitales différentes etcetera, mais peu importe les references que j'y mets, ça donne juste une erreur de programmation, peu importe ce que je fais. Dois-je installer d'autres packages pour que pypyodbc fonctionne peut-être? J'ai vérifié le package using «dir» et cela montre le contenu entier comprenant la fonction de connection.

Quelqu'un peut-il voir quelle partie essentielle je suis manquant?

Avez-vous msodbcsql installé? Installez le pilote ODBC, en fonction de votre operating system:

Pour MacOS

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-msodbcsql brew update brew install msodbcsql sudo pip install pyodbc 

Pour Linux

 sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql.list exit sudo apt-get update sudo apt-get install msodbcsql mssql-tools unixodbc-dev-utf16 sudo pip install pyodbc 

Débarrassez-vous des guillemets simples, remplacez SQL Server avec le ODBC Driver 13 for SQL et vous devriez avoir ceci:

 pypyodbc.connect("DRIVER={ODBC Driver 13 for SQL Server};SERVER=tcp:mssqlserver;DATABASE=analytics;UID=me@analytics;PWD=secret;TrustServerCertificate=no;Connection Timeout=60") 

Dans le cas de cette erreur pypyodbc.OperationalError: (u'HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired') , vérifiez votre code, il s'agit probablement d'une faute de frappe.

Je suis certain que cela va résoudre votre problème. Sinon, vous pouvez essayer pyodbc à la place. Cela fonctionne aussi bien.

 import pyodbc server = 'tcp:myserver.database.windows.net' database = 'myDB' username = 'username' password = 'Secretpassword' connectObj = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) 

À votre santé!