有没有关于pywin32 odbc连接器的文档?
网上有没有好的关于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,这个问题就解决了。