使用Python执行SQL Server存储过程

0 投票
1 回答
793 浏览
提问于 2025-04-16 06:30

我有这段代码

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()

它在'选择'、'插入'和'更新'操作上运行得很好。

这段代码执行存储过程,但在while语句之前就关闭了记录集。

这里是错误信息:

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

1 个回答

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()

撰写回答