11.09.06

Sybase12.5.2版本的procedure不支持异常捕获

Posted in Sybase at 4:53 pm by David.Guo

这两天开发的人向我抱怨,在Sybase中写的procedure无法捕获异常,所以很多应用都出现了问题.昨天搞定了Oracle 8i中的xml的问题后,今天开始搞这玩意.

这种问题,首先当然是去google了下,发现没有啥收获,然后只能去sybase官方网站查手册,发现手册中也没有太多记载(不知道是不是不能实现的就不记载).

实在没有办法,只能call无言这小子,看看他有啥办法.没想到,他的结果是,在sybase12.5.2的procedure中无法进行异常捕获,我发了段测试代码给他,他也调试不出来这种东西.

既然如此,就call 800了(最后才call 800,是因为客户的服务已经过期了,不知道是不是我的声音比较有磁性,居然通过了接线员,到达工程师那里了),工程师要求我将测试代码以及环境发给他,发过去以后,工程师回了个邮件,内容大致如下:

@@error 的用法不正确,在事务中要使用局部变量保存@@error,再作处理!

稍候就这个问题写个程序给您!

我等,等呀等,等了2小时,没程序过来,我再次call 800,并找到刚才的工程师,开口就告诉我,不好意思,比想像的复杂,Sybase没有办法进行异常处理,而且procedure中的任何错误,会导致整个procedure直接退出,我靠,ft,简直是惊喜.

再看看我们的程序,这样的话,应用的更改还不知道多大.直接问Sybase的800,这个东西比较土的吗,没oracle好,他也直接说,是的,是不好,这个没处理好.唉.

俺又开始怀念Oracle了.没办法,只能修改所有的应用,先try,然后do,可是,正确的方法只有一种,错误的方法千千万,我该如何去try列,呵呵.这个问题,还是留给开发吧.我只能对开发说,sorry,sybase这个玩意不支持在procedure中进行异常捕获,你还是把程序的健壮性搞的更强吧.

Leave a Comment