Форум сайта python.su
Всем здравия!
Возникла проблема: не могу получить результат от хранимых процедур в MS SQL.
Т. е. подключение проходит норм, обычные запросы обрабатываются, а результата выполненной процедуры получить не могу…
Пробовал pyodbc и pymssql.
import pyodbc
conn = pyodbc.connect("DRIVER={FreeTDS};SERVER=sql_srv_name;UID=login;PWD=pass;DATABASE=web_db")
curs = conn.cursor()
result = curs.execute("EXEC proc_name @param1='string1', @param2=123")
print result.fetchall() # Результат []
print result.fetchone() # Результат None
sqlcmd = """
DECLARE @res INT
EXEC proc_name @param1='string1', @param2=123, @res OUT
SELECT @res
"""
res = conn.execute_query(sqlcmd)
Офлайн
Если под Windows попробуйте adodbapi:
import adodbapi
connStrSQLServer = r"Provider=SQLOLEDB.1; Integrated Security=SSPI; Initial Catalog=%s;Data Source=%s" %('DB', 'server')
conn=adodbapi.connect(connStrSQLServer)
crsr=conn.cursor()
crsr.execute("execute [dbo].[HGetDayData] @D1 = N'02-21-2011', @D2 = N'02-22-2011',\
@ID = 506, @Type = 1, @IsPnt = 0")
print crsr.fetchall()
Офлайн
Борисенков Сергей, спасибо! Примерно так оно и заработало :)
import pyodbc
conn = pyodbc.connect("DRIVER={FreeTDS};SERVER=sql_srv_name;UID=login;PWD=pass;DATABASE=web_db")
curs = conn.cursor()
print curs.execute("exec dbo.inet_sp_proc_name 'param1', 'param2'").fetchone() # разраб. MSSQL'я подсказал.
Офлайн