这是我的解决方法:
在数据库中,我创建了一个RunningStatus
仅包含一个字段的表status
,该字段是bit
,只有一行,初始设置为0。
在存储过程的开头,我执行以下行
update RunningStatus set status = 1;
在存储过程结束时,
update RunningStatus set status = 0;
在我的Python脚本中,我打开一个新连接并将光标指向同一数据库。在我的execute
行之后,我只需添加
while 1:
q = status_check_cursor.execute('select status from RunningStatus').fetchone()
if q[0] == 0:
break
您需要建立新的连接和游标,因为从旧连接进行的任何调用都会中断存储过程,并可能导致status
永不返回0。
有点笨拙,但对我来说效果很好!