如何终止正在运行的存储过程?

wwj9252003 2006-09-28 09:06:22
开发环境:d7 + oracle 9i + odac
问题:1 程序中有一个数据处理的存储过程,调用起来需要花费比较长的时间,如果我在允许存储过程的时候需要中止这个存储过程,不知道能否做到?如何做?
2 因为存储过程需要花费比较长的时间,如果在程序运行的时候,切换一下窗口,系统将无法相应,一片空白,是不是运行的时候要放到线程中,对线程没有接触过,能否提示一番?

谢谢大家!!
...全文
577 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxfzhxf1 2006-11-07
  • 打赏
  • 举报
回复
可以考虑将存储过程分成几个。
happyhong 2006-10-12
  • 打赏
  • 举报
回复
楼主,给我50分吧,我用线程来写过查询,这样就可以像MSSQL中的查询分析器一样了,让线程去处理,主程序还可以干其实事情。
大概提示一下,因为代码放在家里。
//1.
///////////////////////////
type
mythread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
thread:Tthread1;
//2.
procedure TJHFormGC.SpeedButton2Click(Sender: TObject);
begin
thread:=Tthread1.Create(false);
end;
//3.
procedure Tthread1.Execute;

begin

{ Place thread code here }
adoquery1.close;
adoquery1.open;
end;

///////////////////////
大概的思路就这样
具体的你调试一下就过了
软件钢琴师 2006-10-12
  • 打赏
  • 举报
回复
关机总行了吧
todouwang 2006-10-12
  • 打赏
  • 举报
回复
按Reset鍵,拔掉网线 是不行的
只能通过数据库系统取消该进程
shodog 2006-10-12
  • 打赏
  • 举报
回复
楼上的说的有道理,还有就是拔掉网线.
才子鸣 2006-09-29
  • 打赏
  • 举报
回复
按Reset鍵,
Rubi 2006-09-29
  • 打赏
  • 举报
回复
对于窗口空白,可以用多线程处理,如果你的存储过程执行速度很慢,你可以考虑下是否可以对存储过程进行优化,还有,不知道你的存储过程是否实时性很强,如果每天出一次,或者固定出数据,可以进行计划任务,吧数据存到临时表中,这样在直接查询那个临时表,这样在速度上也会有所提高
wwj9252003 2006-09-29
  • 打赏
  • 举报
回复
再顶顶!
wwj9252003 2006-09-28
  • 打赏
  • 举报
回复
自己顶...
VickyMao 2006-09-28
  • 打赏
  • 举报
回复
帮顶

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧