使用 pyODBC 连接到 ODBC

Connecting to ODBC using pyODBC

我已经阅读了 python odbc 库中的所有常见问题解答页面以及其他示例,并使用以下代码成功连接到 DSN:

cnxn = pyodbc.connect("DSN=DSNNAME")
cursor = cnxn.cursor()
cursor.tables()
rows = cursor.fetchall()
for row in rows:
    print row.table_name

但对于其他所有内容,我不断收到此错误:

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

我知道我可以通过以下步骤使用 Microsoft Access 提取我的数据:创建一个新数据库,单击外部数据选项卡,单击更多和 select ODBC 数据库,使用 Link 通过创建链接 table 到数据源,在 Select 数据源 window 选择机器数据源和 select 具有系统类型的 NAME2,按确定并选择 table acr.Table_one_hh,然后 select table 中我想查看的字段,如城市、州、国家、地区等。当我将鼠标悬停在table 名称它显示 DSN 名称、说明、可信连接 = 是、APP、数据库名称和 table 名称。

我试过两种方法,第一种

cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=mycomputername;DATABASE=mydatabase;Trusted_Connection=yes;')
cursor = cnxn.cursor()

这给出了一个错误:

Error: ('08001', '[08001] [Microsoft][SQL Server Native Client 10.0]Named Pipes Provider: Could not open a connection to SQL Server [2].  (2) (SQLDriverConnect); [HYT00] [Microsoft][SQL Server Native Client 10.0]Login timeout expired (0); [08001] [Microsoft][SQL Server Native Client 10.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (2)')

我试过了

cnxn = pyodbc.connect("DSN=DSNNAME, DATABASE=mydatabase")
cursor = cnxn.cursor()
cursor.execute("""SELECT 1 AS "test column1" from acr.Table_one_hh""")
cursor.tables()
rows = cursor.fetchall()
for row in rows:
    print row.table_name

报错

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

我设法解决了我的问题。我的代码并没有真正改变。

cnxn = pyodbc.connect("DSN=BCTHEAT")
cursor = cnxn.cursor()
cursor.execute("select * from acr.Table_one_hh")
row = cursor.fetchall()

然后我把结果写进了csv文件。