天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1472|回复: 5

[已解决] 视图过滤存储过程问题

[复制链接]
常州易龙信息 发表于 2012-7-27 10:09:56 | 显示全部楼层 |阅读模式
本帖最后由 bess 于 2012-8-3 10:17 编辑

视图过滤存储过程问题,视图过滤选择存储过程模式的话 如果存储过程中只有select 语句则没有问题 能查出 如果select之前多个update就不行了查不出数据
注明:数据库为 SQL Server
存储过程如下
CREATE PROCEDURE p_test   

AS
update TLK_test set item_num=0
select * from TLK_test
bess 发表于 2012-7-27 10:10:26 | 显示全部楼层
您好,我这边测试一下,大约3分钟之后回复您!
bess 发表于 2012-7-27 10:22:20 | 显示全部楼层
测试之后发现确实存在该问题,现已作为bug提交至研发进行修复,修复之后会在帖子中告知。
bess 发表于 2012-8-3 10:10:40 | 显示全部楼层
原来写的存储过程不会的得到想要的结果,是由于jdbc的方法决定的。建议把
UPDATE TLK_学生信息表单 SET ITEM_CODE = 0;
select * from TLK_学生信息表单;

改为:
SET NOCOUNT ON;
UPDATE TLK_学生信息表单 SET ITEM_CODE = 0;
select * from TLK_学生信息表单;
就可以得到想要的结果。

具体解析:执行存储过程需要调用execute方法,这个方法的的返回值决定于第一个result,如果第一个返回的结果是int,也就是update和insert执行的语句,则返回false,就不会有结果集,如果第一个是执行select语句,返回值就是true,会有结果集。set nocount on 是让更新,但不会作为返回的结果。这样就可以让select作为第一个返回的结果。

  以上是研发部门给出的结果,您那边去尝试,有问题我们再沟通!
 楼主| 常州易龙信息 发表于 2012-8-3 10:15:33 | 显示全部楼层
问题解决 OK了  谢谢美女
bess 发表于 2012-8-3 10:17:03 | 显示全部楼层
感谢楼主告知!

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 14:30

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表