在 Python 3 中使用 Pyodbc 自动检测 ODBC 驱动程序

新手上路,请多包涵

您好,我目前在 Python 3 中使用 pyodbc,我正在尝试找出一种方法来自动检测 ODBC 驱动程序,而无需在不同计算机使用时手动更改。原因是因为我的电脑有 ODBC Driver 13 而另一个朋友的电脑有 ODBC Driver 11 所以每当我们从我们这边运行脚本时,我们必须先手动更改版本才能执行该过程。

任何人都可以帮助解决这个问题吗?下面是我的示例代码。

谢谢

import os
import csv
import pyodbc
import datetime
from dateutil.relativedelta import relativedelta

conn = pyodbc.connect(
    r'DRIVER={ODBC Driver 13 for SQL Server};'
    r'SERVER=****;'
    r'DATABASE=****;'
    r'Trusted_Connection=yes;'
    )

cursor = conn.cursor()

cursor.execute("Select * From Table1")
dData = cursor.fetchall()

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

阅读 827
1 个回答

您可以使用 pyodbc.drivers() 方法检索可用驱动程序列表,然后选择您需要的驱动程序,例如,

 driver_name = ''
driver_names = [x for x in pyodbc.drivers() if x.endswith(' for SQL Server')]
if driver_names:
    driver_name = driver_names[0]
if driver_name:
    conn_str = 'DRIVER={}; ...'.format(driver_name)
    # then continue with ...
    # pyodbc.connect(conn_str)
    # ... etc.
else:
    print('(No suitable driver found. Cannot connect.)')

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

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