为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python连接到Microsoft SQL Server

使用Python连接到Microsoft SQL Server

郎朗坤 2019-11-22 15:48:08
我正在尝试通过python连接到SQL,以便在Microsoft SQL服务器上的某些SQL数据库上运行一些查询。从我的在线研究和该论坛上的研究来看,最有前途的图书馆似乎是pyodbc。所以我做了下面的代码import pyodbcconn = 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链接进行连接,这部分是我上面的代码所基于的,所以不必认为我需要安装其他任何东西。
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

在客户端和服务器之间的数据源连接中,有两种常规类型:使用DRIVER的ODBC和使用PROVIDER的OLEDB。在编程世界中,关于连接数据源该走哪条路线一直是一个经常性的辩论。


您正在使用提供程序,SQLOLEDB但将其指定为驱动程序。据我所知,pyodbc和pypyodbc模块都不支持Window OLEDB连接。但是,adodbapi会使用Microsoft ADO作为基础组件。


以下是连接参数的两种方法。另外,我将您的变量设置为字符串格式,因为您的串联没有正确地中断字符串中的引号。您会注意到我将花括号加倍,因为它在连接字符串中是必需的,并且string.format()也使用它。


# PROVIDER

import adodbapi

conn = adodbapi.connect("PROVIDER=SQLOLEDB;Data Source={0};Database={1}; \

       trusted_connection=yes;UID={2};PWD={3};".format(ServerName,MSQLDatabase,username,password))

cursor = conn.cursor()


# DRIVER

import pyodbc

conn = pyodbc.connect("DRIVER={{SQL Server}};SERVER={0}; database={1}; \

       trusted_connection=yes;UID={2};PWD={3}".format(ServerName,MSQLDatabase,username,password))

cursor = conn.cursor()


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 2560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号