存儲過程里如何可以得到出錯時的信息,比如我想知道出錯時某個變量的取值(100分)

  • 主题发起人 主题发起人 huky
  • 开始时间 开始时间
H

huky

Unregistered / Unconfirmed
GUEST, unregistred user!
因為我的程序里涉及到字符換時間,錯誤的字符串會在存儲過程里引發錯誤
怎么知道出錯時的變量值呢
 
单步执行阿,F8
 
我是要在程序中自動顯示出錯時的變量信息.
 
可以给存储过程添加返回值的参数,当出错时,将出错数据付给返回值,然后在delphi程序中调用返回值即可。
 
Brave
我就是想指導,怎么在存儲過程中知道出錯了,象try...except的結构在存儲過程中
有么?
 
在执行存儲過程中插入一些print变量语句,
用查询分析器执行存儲過程,
即可知道出錯時的變量值.

to:想指導,怎么在存儲過程中知道出錯了,象try...except的結构在存儲過程中?
一般程序员不会单独使用sql server来完成一个解决方案,比如:
delphi+sql server体系结构,
你可以用sql server的

begin transaction --事务开始
。。。。
--存儲過程代码
。。。。
if @@error<>0 --如果异常出现
begin
rollback transaction --回滚事务
raise(?,?,'') --抛出错误,第三个参数是一个字符串,可控制
end
else
begin
commit transaction --提交事务
end
然后用delphi 的
try...except
捕获错误,即可得到预期的效果。



 
if @@error<>0 --如果异常出现
begin
rollback transaction --回滚事务
Return --返回值
end
 
最好在向存储过程递交参数之前对参数进行必要的检查,
字符转时间为什么偏要在存储过程中做,在向存储过程赋参数前先转换,存储过程接收时间值不好吗?
这样错误就很容易捕获。
 
沒時間去試驗,不過拖了這么久了,還是先把分給發了...
 
多人接受答案了。
 
后退
顶部