有没有关于pywin32 odbc连接器的文档?

1 投票
3 回答
3893 浏览
提问于 2025-04-15 11:11

网上有没有好的关于pywin32和odbc连接器的文档和教程?

3 个回答

2

答案是:‘没有一个固定的答案’。不过,这里有一个例子,展示了如何打开连接、发送查询,以及如何从结果中获取列的元数据。你可以在PEP 249找到DB API 2.0的规范。

import dbi, odbc

SQL2005_CS=TEMPLATE="""\
Driver={SQL Native Client};
Server=%(sql_server)s;
Database=%(sql_db)s;
Trusted_Connection=yes;
"""

CONN_PARAMS = {'sql_server': 'foo',
               'sql_db': 'bar'}

query = "select foo from bar"

db = odbc.odbc(SQL2005_CS_TEMPLATE % CONN_PARAMS)
c = db.cursor()
c.execute (query)
rs = c.fetchall()  # see also fetchone() and fetchmany()
# looping over the results
for r in rs:
    print r

#print the name of column 0 of the result set
print c.description[0][0]

#print the type, length, precision etc of column 1.
print c.description[1][1:5]

db.close()
3

替代方案:

  • mxODBC,来自 egenix.com(如果你需要使用ODBC的话)
  • pyODBC
  • sqlalchemy 和 DB-API 2.0 模块(这不是ODBC,但可能是更好的选择)
1

我找到的唯一“文档”就是和pywin32包一起安装的一个单元测试。这个测试似乎提供了这个包的一般功能概述。我在这里找到了它:

python dir\Lib\site-packages\win32\test\test_odbc.py

我还想提一下,我认为它实现了Python数据库API规范的1.0版,相关文档可以在这里找到:

http://www.python.org/dev/peps/pep-0248/

注意,这个规范还有2.0版(见PEP-2049)

顺便说一下,我一直在尝试使用pywin32的odbc,但我遇到了ODBC驱动间歇性崩溃的问题。最近我换用了pyodbc,这个问题就解决了。

撰写回答