使用Python连接到Microsoft SQL Server

我正在尝试通过python连接到SQL,以便在Microsoft SQL服务器上的某些SQL数据库上运行一些查询。从我的在线研究和该论坛上的研究来看,最有前途的图书馆似乎是pyodbc。所以我做了下面的代码


import pyodbc

conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+; 

database=+MSQLDatabase+; trusted_connection=true")

cursor = conn.cursor()

并得到以下错误


Traceback (most recent call last):

  File "C:\Users...\scrap.py", line 3, in <module>

    conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+; database=+MSQLDatabase+; trusted_connection=true")

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

我查看了以下文章,并尝试将驱动程序更改为{sql server}并在SAS中使用ODBC链接进行连接,这部分是我上面的代码所基于的,所以不必认为我需要安装其他任何东西。


郎朗坤
浏览 2561回答 3
3回答

慕后森

在客户端和服务器之间的数据源连接中,有两种常规类型:使用DRIVER的ODBC和使用PROVIDER的OLEDB。在编程世界中,关于连接数据源该走哪条路线一直是一个经常性的辩论。您正在使用提供程序,SQLOLEDB但将其指定为驱动程序。据我所知,pyodbc和pypyodbc模块都不支持Window OLEDB连接。但是,adodbapi会使用Microsoft ADO作为基础组件。以下是连接参数的两种方法。另外,我将您的变量设置为字符串格式,因为您的串联没有正确地中断字符串中的引号。您会注意到我将花括号加倍,因为它在连接字符串中是必需的,并且string.format()也使用它。# PROVIDERimport adodbapiconn = adodbapi.connect("PROVIDER=SQLOLEDB;Data Source={0};Database={1}; \&nbsp; &nbsp; &nbsp; &nbsp;trusted_connection=yes;UID={2};PWD={3};".format(ServerName,MSQLDatabase,username,password))cursor = conn.cursor()# DRIVERimport pyodbcconn = pyodbc.connect("DRIVER={{SQL Server}};SERVER={0}; database={1}; \&nbsp; &nbsp; &nbsp; &nbsp;trusted_connection=yes;UID={2};PWD={3}".format(ServerName,MSQLDatabase,username,password))cursor = conn.cursor()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python