2010-11-03 4 views
0

J'ai ce codeexécuter la procédure de magasin SQLServer en utilisant python

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

il fonctionne très bien sur les opérations 'select', 'insert' et 'mise à jour'.

le code exécute les procédures de stockage, mais il ferme l'ensemble d'enregistrements avant la déclaration de temps.

ici est l'erreur:

... pywintypes.com_error: (-2147352567, 'exception est survenue', (0, u'ADODB.Recordset », u'Operation n'est pas autorisée lorsque l'objet est fermé « ...

Répondre

0

Je ne sais pas si cela va aider, mais voici comment le faire avec 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() 
Questions connexes