使用 Python 连接到 Microsoft SQL 服务器

新手上路,请多包涵

我正在尝试通过 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 链接进行连接,这部分是我上面的代码所基于的,所以不要认为我需要安装任何其他东西。

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

Pyodbc - “未找到数据源名称,未指定默认驱动程序”

谢谢

原文由 Christopher Ell 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 797
2 个回答

我就是这样做的…

 import pyodbc
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server=server_name;"
                      "Database=db_name;"
                      "Trusted_Connection=yes;")

cursor = cnxn.cursor()
cursor.execute('SELECT * FROM Table')

for row in cursor:
    print('row = %r' % (row,))

相关资源:

原文由 ASH 发布,翻译遵循 CC BY-SA 4.0 许可协议

对之前所说的内容进行少量补充。您可能想要返回一个数据框。这将作为

import pypyodbc
import pandas as pd

cnxn = pypyodbc.connect("Driver={SQL Server Native Client 11.0};"
                        "Server=server_name;"
                        "Database=db_name;"
                        "uid=User;pwd=password")
df = pd.read_sql_query('select * from table', cnxn)

原文由 Keith 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题