My team\'s using a python-based wiki server that calls stored procedures on a SQL Server database. Ideally, we\'d like to return integer values (1,0,-1) from the stored proc
I'm using this:
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])
It only works on SQL Server (or maybe Sybase), but it's a decent workaround.
I added the following to get it to work in my application:
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])
Here's some relevant information: http://code.google.com/p/pyodbc/wiki/StoredProcedures
It sounds like return values are still not supported, so you'll need to use a SELECT
.