Mon équipe utilise un serveur Wiki basé sur Python qui appelle des procédures stockées sur une base de données SQL Server. Idéalement, nous aimerions retourner des valeurs entières (1,0, -1) de la procédure stockée pour afficher les résultats de base. P>
Selon un Fil 2008 sur Google Groupes , Valeurs de retour Aren 'T pris en charge par PYODBC, la variante consiste donc à sélectionner le résultat comme ligne et à vérifier à la place. Est-ce toujours le cas? Existe-t-il un moyen programmatique (supporté et documenté) de vérifier la valeur de retour des procédures stockées SQL? (Si oui, veuillez ajouter une référence ou un exemple de courant.) P>
3 Réponses :
Voici quelques informations pertinentes: http://code.google.com/p/pyodbc / wiki / stockeprocedures p>
On sonne comme des valeurs de retour ne sont toujours pas pris en charge, vous devez donc utiliser un SELECT CODE>. P>
J'utilise ceci:
def CallStoredProc(conn, procName, *args): sql = """DECLARE @ret int EXEC @ret = %s %s SELECT @ret""" % (procName, ','.join(['?'] * len(args))) return int(conn.execute(sql, args).fetchone()[0])
J'ai ajouté ce qui suit pour le faire fonctionner dans ma candidature:
def CallStoredProc(conn, procName, *args): sql = """SET NOCOUNT ON; DECLARE @ret int EXEC @ret = %s %s SELECT @ret""" % (procName, ','.join(['?'] * len(args))) return int(conn.execute(sql, args).fetchone()[0])