这个问题听起来可能很愚蠢,但有人可以为我提供带有 postgresql 的 pypyodbc ....吗?我一直在互联网上搜索它,并没有找到任何东西*字面上的任何东西。
问问题
4960 次
2 回答
3
我无法想象你为什么要使用 pypyodbc;考虑直接使用DB-API 驱动程序,例如psycopg2
维护较差但对 PyPy 更友好的pyPgSQL,或较新的不太成熟的 py-postgresql。有关详细信息,请参阅数据库驱动程序列表。
如果由于某种原因您需要做一些奇怪和晦涩的事情,例如使用 PyPy 中的 ODBC 连接到 PostgreSQL...
有时,作为程序员,我们必须做一些可怕的事情——离开教程,自己思考问题;-)
当面对这个可怕的挑战时,有一些工具可以大大简化这个过程:
- 我们正在使用的每个组件的文档;和
- 为所涉及组件的某些子集编写的教程/指南,但不是全部。
在这种情况下,这表明您的关键资源是:
pypyodbc 代码和包,其中包含以下链接:
psqlODBC 页面,带有有用的链接。
其中一些示例是您想要的,但连接到不同的数据库引擎。您必须使它们适应PostgreSQL 和 psqlODBC。每个组件如何工作的文档将帮助您做到这一点;例如:
- 使用引用 MS SQL Server 的示例了解如何连接到 DSN
- 从 psqlODBC 文档了解如何在 psqlODBC 中创建 DSN
- 结合这些知识来连接到 psqlODBC DSN
了解到 pypyodbc 在功能上与 pyodbc 非常相似,这也让您可以扩大搜索范围以涵盖 pyodbc 的示例:
现在,您的任务是综合这些元素,从不同的文档中学习相关部分,这样您就可以将所学的各个内容组合成一个工作整体。
于 2014-02-05T01:53:02.443 回答
2
如果您正在寻找一个非常基本的示例来帮助您入门,那么以下代码对我有用:
# -*- coding: utf-8 -*-
import pypyodbc
cnxn = pypyodbc.connect(
'Driver={PostgreSQL ODBC Driver(UNICODE)};' +
'Server=localhost;' +
'Port=5432;' +
'Database=myDBname;' +
'Uid=postgres;' +
'Pwd=whatever;')
crsr = cnxn.cursor()
crsr.execute("SELECT id, customer FROM public.table1")
while 1:
row = crsr.fetchone()
if not row:
break
print row
crsr.close()
cnxn.close()
于 2014-02-05T12:11:46.967 回答