我正在与BoundView = new ObservableCollection<CustomJoinObject>(/*LINQ QUERY*/);
建立连接以执行存储过程。什么是正确的民意调查方式?服务器确定存储过程是否成功运行,或者如果SP花费的时间超过60秒/ 3600秒,则返回错误等等?
SQL Server
如何确定SP的状态?
答案 0 :(得分:6)
考虑将execute
包装在try / except中以捕获异常(encompass errors)。如果未引发错误,则假定execute
正确运行。此外,使用timeout variable(以秒为单位),因为如果发生超时,数据库应该引发OperationError
。
cnxn = pyodbc.connect('DRIVER={SQL Server}; SERVER=ServerName; PORT=1433; \
DATABASE=dbname;UID={0};PWD={1}'.format(username, password))
cnxn.timeout = 60
cursor = cnxn.cursor()
try:
cnxn.execute("EXECUTE msdb.dbo.sp_start_job 'TestSP'")
except Exception as e:
print(e)
答案 1 :(得分:1)
看起来你已经跳过制作光标,所以你需要这样做,然后获取结果。试试这个:
import pyodbc
connection = pyodbc.connect('DRIVER={SQL Server}; SERVER=ServerName; PORT=1433;DATABASE=dbname;UID=%s;PWD=%s' % (username, password))
cursor = connection.cursor()
cursor.execute("EXECUTE msdb.dbo.sp_start_job 'TestSP'")
rows = cursor.fetchall()
for row in rows:
# Do stuff
print(row)