我已经在我的个人计算机上运行了mssql 2005,我希望运行一些python脚本.我正在寻找一种方法来对数据进行一些非常简单的访问.我想运行一些select语句,处理数据并且可能让python保存带有结果的文本文件.
不幸的是,尽管我对python有点了解并且对数据库有点了解,但是我很难通过阅读来判断一个库是否符合我的要求.理想情况下,我想要的东西适用于其他版本的mssql,是免费的,许可允许商业使用,使用简单,可能与ironpython一起使用.
其他人似乎都有cPython - > SQL Server方面.如果要使用IronPython,可以使用标准ADO.NET API与数据库通信:
import clr clr.AddReference('System.Data') from System.Data.SqlClient import SqlConnection, SqlParameter conn_string = 'data source=; initial catalog= ; trusted_connection=True' connection = SqlConnection(conn_string) connection.Open() command = connection.CreateCommand() command.CommandText = 'select id, name from people where group_id = @group_id' command.Parameters.Add(SqlParameter('group_id', 23)) reader = command.ExecuteReader() while reader.Read(): print reader['id'], reader['name'] connection.Close()
如果您已经有IronPython,则无需安装任何其他东西.
这里和这里提供了大量的文档.
我使用SQL Alchemy和cPython(我不知道它是否适用于IronPython).如果您使用过Hibernate/nHibernate,那将会非常熟悉.如果这对你来说有点过于冗长,你可以使用Elixir,它是SQL Alchemy上的一个薄层.要使用其中任何一个,你需要pyodbc,但这是一个非常简单的安装.
当然,如果你想直接写SQL而不是使用ORM,你只需要pyodbc.
pyodbc附带Activestate Python,可以从这里下载.连接到SQL Server 2005数据库的最小odbc脚本如下所示:
import odbc CONNECTION_STRING=""" Driver={SQL Native Client}; Server=[Insert Server Name Here]; Database=[Insert DB Here]; Trusted_Connection=yes; """ db = odbc.odbc(CONNECTION_STRING) c = db.cursor() c.execute ('select foo from bar') rs = c.fetchall() for r in rs: print r[0]