【问题标题】:pypyodbc help to find tutorials for begining [closed]pypyodbc 帮助查找入门教程 [关闭]
【发布时间】:2014-02-04 16:26:03
【问题描述】:

这个问题可能听起来很愚蠢,但有人可以为我提供带有 postgresql 的 pypyodbc .... 吗?我一直在互联网上搜索它,并没有找到任何东西*字面上的任何东西。

【问题讨论】:

    标签: postgresql pypyodbc


    【解决方案1】:

    我无法想象你为什么要使用 pypyodbc;看看直接使用DB-APIdriversuch as psycopg2 或维护得不太好但对 PyPy 更友好的pyPgSQL,或较新的不太成熟的py-postgresql。请参阅database driver list 了解更多信息。

    如果由于某种原因你需要做一些奇怪和晦涩的事情,比如使用 PyPy 中的 ODBC 连接到 PostgreSQL...

    有时,作为程序员,我们必须做一些可怕的事情——走出教程,自己思考问题;-)

    当面对这个可怕的挑战时,有一些工具可以大大简化这个过程:

    • 我们使用的每个组件的文档;和
    • 为所涉及组件的一部分(但不是全部)编写的教程/指南。

    在这种情况下,这表明您的关键资源是:

    其中一些示例是您想要的,但连接到不同的数据库引擎。您必须将它们调整以适应 PostgreSQL 和 psqlODBC。每个组件如何工作的文档将帮助您做到这一点;例如:

    • 使用引用 MS SQL Server 的示例了解如何连接到 DSN
    • 从 psqlODBC 文档了解如何在 psqlODBC 中创建 DSN
    • 结合这些知识来连接到 psqlODBC DSN

    了解到 pypyodbc 在功能上与 pyodbc 非常相似,这也让您可以扩大搜索范围以查找涵盖 pyodbc 的示例:

    现在,您的任务是综合这些元素,从不同的文档中学习相关部分,这样您就可以将所学的各个内容组合在一起。

    【讨论】:

    • +1 表达了我的想法,但更雄辩、更好。
    【解决方案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()
    

    【讨论】:

    • 嗨,戈德,我可以知道你是如何安装 PostgreSQL ODBC Driver(UNICODE) 的吗?您可以发布您的/etc/odbcinst.ini 文件和/etc/odbc.ini 文件吗?我正在尝试使用 pypyodbc 连接到 postgresql 但失败了。谢谢。
    • @userpal 我在 Windows 机器上进行了该测试。我的 Xubuntu 盒子在存储库中显示了一个名为 python3-postgresql 的包,所以如果我使用的是 Python 3,我可能会先尝试一下,然后再搞乱多层 ODBC 设置。如果这对您不起作用(例如,如果您仍在使用 Python 2),请尝试 asking a new question
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多