使用Python执行SQL Server存储过程
我有这段代码
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()