8
votes

Comment obtenir une valeur de retour de procédure stockée SQL Server à l'aide de PYODBC?

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.

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


0 commentaires

3 Réponses :


3
votes

Voici quelques informations pertinentes: http://code.google.com/p/pyodbc / wiki / stockeprocedures

On sonne comme des valeurs de retour ne sont toujours pas pris en charge, vous devez donc utiliser un SELECT .


0 commentaires

7
votes

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


0 commentaires

2
votes

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


0 commentaires