如何在存储过程中查询cursor状态?(50分)

  • 主题发起人 主题发起人 zhanggeye
  • 开始时间 开始时间
Z

zhanggeye

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在定义一个新cursor之前查一下
同名的cursor是否已定义或打开。
如是则关闭它。
可有这样的函数或过程调用?

另:delphi调用sql存储过程时,
存储过程可不可以内部处理错误而不要触发delphi异常。


 
定义cursor为什么一定要同名呢?该可以控制的吧?
way1.sql中有判断错误是否存在的语句,(sorry I forget)
way2.delphi可以截取sql的错误信息的。

 
if @@error<>0
begin
.
.
.
end
 
To sportsman:
居于一定理由,cursor一定要用同个名字,
而且有可能已经定议或打开。
delphi当然能截取sql的错误信息,
这正是我现在所不想要的,我想要象delphi的abort哪样.
我想在存储过程内部处理错误而不触发delphi异常.
 
books online 中查询@@error可以得到错误类型。@@error=0执行正确。
可在STORE PROC中处理。
 
to sportsman:
@@error=0是不能执行的,我早已经试过。
我的意思是:

[1] deallocate cursor1
[2] declare cursor1 cursor for select * from 凭证库

先不管如何执行一个删除操作,
但是第一句执行时,如果出错,不管你在后遭遇面是否对
根据@@error进行处理,delphi的程序已经触发异常,并回滚整个事务。
所以我想能不能和delphi一样:
try
......
except
abort;
end;
这种机制可以实现异常的静默,非常有用。

 
Sorry,I don't know.
 
接受答案了.
 
后退
顶部