使用python执行sql server存储过程

时间:2010-11-03 18:08:16

标签: python sql-server-2005

我有这段代码

from win32com.client import Dispatch  

connection_string = "Provider=SQLNCLI;server=%s;initial catalog=%s;user id=%s;password=%s"%(server,db_name,user,pwd)  

dbConn = Dispatch("ADODB.Connection")  

dbConn.Open( connection_string )  

( rs, result ) = s.dbConn.Execute( query_string )

while not rs.EOF:
   for field in rs.Fields :
      dic[str( field.name )] = str( field.value )
      print dic
      rs.MoveNext()

它可以在'select','insert'和'update'操作中正常工作。

代码执行存储过程,但它会关闭while语句之前的记录集。

这是错误:

... pywintypes.com_error:(-2147352567,'异常发生。',(0,u'ADODB.Recordset',当对象关闭时,不允许操作。'...

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但这里是如何使用pyODBC:

        cn = pyodbc.connect("DSN=myDBName")
        cn.autocommit = True
        cr = cn.cursor()
        cr.execute("set nocount on")
        cr.execute("exec myStoredProc")
        ...
        cr.close()
        cn.close()