Mik*_*son 24 python sql-server
我相对较新的数据库,执行SQL查询等.目前我专门为我的数据库使用MS SQL Server(这是我们在工作中使用的),但希望我的问题的答案可以更广泛而不仅仅是为了特别的DB.
我使用数据库接口应用程序本身(在本例中为SQL Server Management Studio)做了很多工作,但我也通过python脚本做了一些工作,其中一些作为cron作业运行,其中一些是像这样的网站用户可以向DB提交查询.
我一直在使用pymssql模块从python查询和写入数据库.但是我遇到了一些恼人的问题.(看来pymssql不能使用临时表,而且我也遇到了"自动提交"的麻烦,但这可能是我自己的错.)
所以对大部分内容一无所知,我只想了解一下我应该走的方向.据我所知,我可以:
事实是,我没有完全得到ODBC的作用.它似乎是某种"认证中介",有点像中间人,以确保用户是他/她说的人.而且我对ADO的了解甚少.
虽然pymssql似乎是最简单的方法,但它似乎也是人们认为不那么高的,并且它最终会被弃用.我宁愿学习"正确"的方式,因为我刚刚开始使用这些东西.
所以我正在寻找一些知识渊博的观点,让我们了解如何让python与MS SQL Server交谈,以及与DB进行通信.我会将"最佳"定义为最适合那些会用它做适度复杂事情的人.(虽然我刚刚开始,但我最终还是要提升一点.)
谢谢!麦克风
e1i*_*i45 18
pyodbc(推荐)
我几个月前就开始使用这个模块,到目前为止没有任何抱怨.开发社区似乎比pymssql更活跃.到目前为止我没有安装问题(32位Win XP和64位Server 2008 R2).您将拥有额外的优势,即您不仅限于MS SQL Server.
如果您在Windows上安装,您可能会发现:http://www.lfd.uci.edu/~gohlke/pythonlibs/很有帮助.
pymssql
我使用1.x版本大约2.5年.我对大型物体的尺寸限制有一些小问题.在多线程时我也遇到了大量问题(如果关闭我必须转向).1.x基于已弃用的MS库.但是,最新版本是2.x,不再使用这些已弃用的库.相反,它使用FreeTDS(如pyodbc).听起来不错,但我还没试过.
adodbapi
我已经尝试切换出pymssql并在大约一年前用adodbapi替换它,并且一些与pymssql一起工作正常的查询失败没有明显的原因.我很快又放弃了adodbapi.
小智 9
根据我的经验,PYODBC现在有点问题.首先,它似乎没有正确或可靠地管理unicode字符串.其次,API有点过时且具体,而且不太符合Python DB-API(PEP-249).
我正在将项目代码迁移到PYMSSQL,在我的测试中,到目前为止,它涵盖了上述两个问题的基础.我不知道这个API的任何弃用,因为它似乎经常更新(2013年10月的主要版本),文档或多或少是最新的,并且是活跃的.
这些只是我目前在PYODBC和PYMSSQL上的发现和进展.一切都要改变当然:)