代码之家  ›  专栏  ›  技术社区  ›  ROBERT RICHARDSON

pyodbc与ado via com for python脚本

  •  0
  • ROBERT RICHARDSON  · 技术社区  · 6 年前

    多年来,我公司一直使用win32com模块和ado通过python脚本中的odbc连接到数据库。我不喜欢ADO,因为它是古老的,因为COM本身就很慢,而且它往往会抛出一个特殊的异常,我从来没有找到解决方法。我们使用ODBC是因为我们不能假定我们的客户有任何特定的数据库系统(尽管他们大多数使用PostgreSQL)。我们有一个类,它包装ADO并提供对ADO中大部分(可能全部)功能的访问。我正处在一个可以建议完全转换为pyodbc的阶段。在我这样做之前,我很好奇:通过win32com ADO有什么好处吗?它是否比pyodbc有更多的功能?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Gord Thompson    6 年前

    ADO通过win32com有什么好处吗?它是否比pyodbc有更多的功能?

    实际上,尤其是关于ODBC,不是真的。ADODB的优点是能够将OLEDB提供程序用于具有OLEDB提供程序但不是ODBC驱动程序的数据库,但这种情况很少发生。(我能回忆起的唯一这样的数据库是“SQL Server Compact Edition”,它早就停止使用了。)

    正如对这个问题的评论中提到的,pyodbc的优点是在与数据库通信时避免额外的中间件层,即,

    您的pythonapp pyodbc odbcdrivermanager odbcdriver数据库

    VS

    用于ODBC ODBCDriverManager ODBCDriver数据库的Yourpythonapp win32com ADodb OLEDB提供程序

    如前所述,win32com/adodb是一种仅限于Windows的技术,而pyodbc解决方案也可以部署在Linux或Mac上,前提是这些平台有适当的odbc驱动程序。