我对数据库、执行SQL查询等都比较陌生。目前我只对DBs使用MS SQL Server (这是我们在工作中使用的),但希望对我的问题的回答能够比对特定DB更普遍。
我使用DB接口应用程序完成了大量工作(在本例中是),但我也通过python脚本完成了一些工作,其中一些脚本以cron作业的形式运行,其中一些是可以让用户向DB提交查询的网站。
我一直在使用pymssql模块来查询&从python写入DBs。但我遇到了一些恼人的问题。( pymssql似乎不能使用临时表,而且我在“自动提交”方面也遇到了问题,但这很可能是我自己的错。)
所以我对这件事一无所知,我只想知道我该往哪个方向走。据我所知,我可以:
问题是,我不完全得到了ODBC所做的。这似乎是某种“身份验证中介”,有点像一个中间人,以确保用户是他/她所说的人。我对ADO的理解更少。
虽然pymssql似乎是最简单的方法,但它似乎也是人们不太重视的方法,而且最终会被废弃。我宁愿学习“正确”的方法,因为我只是刚开始学习这些东西。
因此,我正在寻找一些关于如何让python与MS进行对话,以及如何与DBs进行一般对话的一些有知识的意见。我会把“最好”定义为对那些使用它做一些比较复杂的事情的人来说最好的。(在我刚开始的时候,这是我最终不得不增加的一些东西。)
谢谢!麦克
发布于 2012-03-16 14:22:53
pyodbc (推荐)
我几个月前就开始使用这个模块了,到目前为止还没有收到任何投诉。开发社区似乎比pymssql更活跃。到目前为止,我没有安装问题(32位Win XP和64位服务器2008 R2)。您将有一个额外的优势,即您不局限于MS服务器。
如果您安装在windows上,您可能会发现:http://www.lfd.uci.edu/~gohlke/pythonlibs/很有用。
pymssql
我使用1.x版本已经有大约2.5年了。对于大型对象的大小限制,我遇到了一些小问题。我也遇到了大量的问题,当多线程(到了点,我必须关闭)。1.x基于不推荐的MS库。但是,最近的版本是2.x,不再使用这些废弃的库。相反,它使用FreeTDS (比如pyodbc)。听起来不错,但我还没试过呢。
[医]阿多巴米( adodbapi )
大约一年前,我试过将pymssql替换为adodbapi,一些与pymssql很好的查询没有明显的原因而失败。我很快又抛弃了阿多巴米。
发布于 2014-02-04 21:37:13
根据我的经验,最近PYODBC有点问题。首先,它似乎没有正确或可靠地管理unicode字符串。其次,API有点过时,而且与Python (PEP-249)不太兼容。
我正处于将项目代码迁移到PYMSSQL的过程中,到目前为止,在我的测试中,它涵盖了以上两个问题的基础。我不知道这个API有什么不可取之处,因为它似乎经常更新(主要版本在2013年10月),文档或多或少都是最新的,而且是活动的。
这些只是我目前在PYODBC和PYMSSQL方面的发现和进展。如有任何改变,可更改路线:)
https://stackoverflow.com/questions/8812631
复制相似问题