Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2011 21:10:57

Challenger
От:
Зарегистрирован: 2011-02-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов процедур в MS SQL из Python

Всем здравия!

Возникла проблема: не могу получить результат от хранимых процедур в 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)
Кто решал подобную задачу, отпишитесь плиз как именно. Буду премного благодарен!:)



Офлайн

#2 Фев. 22, 2011 08:56:43

Борисенков Сергей
От:
Зарегистрирован: 2011-01-11
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов процедур в MS SQL из Python

Если под 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()



Офлайн

#3 Фев. 22, 2011 09:02:26

Challenger
От:
Зарегистрирован: 2011-02-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов процедур в MS SQL из Python

Борисенков Сергей, спасибо! Примерно так оно и заработало :)

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'я подсказал.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version