ASE升级后PB的程序执行存储过程的疑问

sybasebbs 2011-10-20 09:32:31
同一个存储过程,以前是ASE12.5的时候,在程序里可以正常运行。现在升级到12.54就不能在程序里运行了。但用SQLADV还是正常的,应该是哪里的原因?
PB里直接运行存储过程加变量也可以正常。
在PB里运行程序进行测试也不成功,但如果是DEBUG程序,就可以执行成功。。


...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sybasebbs 2012-03-07
  • 打赏
  • 举报
回复
研究了一下,好像是事务提交的问题。不知道11449的EBF比10430更新了这方面的什么内容
WWWWA 2011-10-24
  • 打赏
  • 举报
回复
游标一般先定义,打开,循环取值,估计版本不同,对于游标的使用方法不同,看看其HELP
sybasebbs 2011-10-24
  • 打赏
  • 举报
回复
看一下#7楼的说明,二行插入,只有第一行在数据库里能查到,第二行就没了。

是不是数据库要设置什么参数?
sybasebbs 2011-10-22
  • 打赏
  • 举报
回复
insert F_A11 SELECT "TESTaaa23-1" --

insert F_A11 SELECT "TESTaaa23-2" ---- open cursor_y

更奇怪的是,我把有问题的这二行改成这样,还是能插入TESTaaa23-1的数据TESTaaa23-2的竟然就插不进去:(

可能是什么原因?
sybasebbs 2011-10-21
  • 打赏
  • 举报
回复
很奇怪的,如果在DEBUG中间停一下,然后,就正常了。如果不停,那就不正常。
得不到出错信息。
SP是比较复杂的,目前主要有二个:
第一个是有传入变量还有转出的。只要传出变量在中间赋值,就不正常了,只有写到最后赋值才OK。现在修改存储过程就正常了。

第二个只有一个传入变量。中间处理比较麻烦,调用其它几个存储过程进行处理,中间需要根据情况生成几个表的数据(好像就这里出的错)。这个存储过程很长,调用也很复杂。还没看出哪里可能出问题。至少没升级ASE之前用的都很好。
  • 打赏
  • 举报
回复
输出什么错误信息呢? sqlerrtext 是?
sybasebbs 2011-10-21
  • 打赏
  • 举报
回复
谢谢,这是个不错的办法。
测试发现:
insert F_A11 SELECT "TESTaaa23" --
select @bill_count = 0
insert F_A11 SELECT "TESTaaa23-1" --成功了
open cursor_y
insert F_A11 SELECT "TESTaaa23-2" --这里没数据了
fetch cursor_y into @y_amnt,@y_id,@l_comment
insert F_A11 SELECT "TEST23333-3" --

根据前面的查看,这里应该是一个游标。不过没有前面的定义,直接打开的。
可能是从前面调用的存储过程或别的地方定义过来的。不过以前的ASE版本或不通过直接运行就能成功。但如果程序编译后或直接运行就出问题了。也不报错。

下一步应该怎么查?
WWWWA 2011-10-21
  • 打赏
  • 举报
回复
提示什么,SP代码是什么,有传入、传出变量?
wwwwb 2011-10-21
  • 打赏
  • 举报
回复
没错,用SELECT 变量 OR 将变量值存入表中,逐步调试,看看问题出在什么地方
iihero 2011-10-21
  • 打赏
  • 举报
回复
这类问题,只能步步排除,多加一些debug信息,看看哪里出错。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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