多年来,我公司一直使用win32com模块和ADO通过Python脚本中的ODBC连接到数据库。我不喜欢ADO,因为它很古老,并且COM本质上很慢,并且因为它倾向于抛出一个特定的异常,而我没有找到解决方法。我们使用ODBC是因为我们不能假设客户拥有任何特定的数据库系统(尽管大多数客户使用PostgreSQL)。我们有一个包装ADO的类,并提供对ADO中大多数(也许全部)功能的访问。我正在建议完全转换为pyodbc。在此之前,我很好奇:通过win32com ADO是否具有优势?它比pyodbc具有更多功能吗?
答案 0 :(得分:0)
通过win32com对ADO有优势吗?它比pyodbc具有更多功能吗?
实际上,特别是关于ODBC,不是真的。 ADODB的优点是能够对具有OLEDB提供程序但没有ODBC驱动程序的数据库使用OLEDB提供程序,但这很少见。 (我唯一记得的这种数据库是“ SQL Server Compact Edition”,该数据库很久以前就已停产。)
正如对问题的评论中提到的那样,pyodbc的优点是在与数据库进行通信时避免了中间件的额外层,即
您的Python应用程序pyodbc ODBC驱动程序管理器ODBC驱动程序数据库
vs。
用于ODBC↔ODBC驱动程序管理器↔ODBC驱动程序数据库的Python应用程序win32com ADODB OLEDB提供程序
如前所述,win32com / ADODB是仅Windows的技术,而如果适用于这些平台的ODBC驱动程序,pyodbc解决方案也可以部署在Linux或Mac上。