找回密码
 立即注册

QQ登录

只需一步,快速开始

BAZINGA

注册会员

7

主题

21

帖子

130

积分

注册会员

积分
130
BAZINGA
注册会员   /  发表于:2023-6-5 09:31  /   查看:2482  /  回复:7
1金币
sqlserver数据库,需要调用一个带时间参数的存储过程,更新几个表里的数据,报表绑定这几个表为数据集并展示。
如何实现先执行带参结果集 再查询表

最佳答案

查看完整内容

您好,根据您的描述,可以这样绕一下实现,先添加对应的参数和存储过程,下图DataSet1是存储过程,DataSet2是数据集的表sql语句,在DataSet2中使用DataSet1的字段,这样就可以保证,先执行DataSet1在执行DataSet2。您可以参考下图测试看看。

7 个回复

正序浏览
Eden.SunWyn认证
超级版主   /  发表于:2023-6-6 16:40:40
9#
BAZINGA 发表于 2023-6-6 14:14
我这边测试还是不行呢 我第二个sql语句写的where @p1=@p1这样写没错吧?

参数必须是第一个数据集,也就是存储过程的执行结果的字段值,您看一下是不是这么设置的。
可以参考一下楼上的模板。
回复 使用道具 举报
BAZINGA
注册会员   /  发表于:2023-6-6 14:14:21
8#
Eden.Sun 发表于 2023-6-5 18:36
您好,根据您的描述,可以这样绕一下实现,先添加对应的参数和存储过程,下图DataSet1是存储过程,DataSet2 ...

我这边测试还是不行呢 我第二个sql语句写的where @p1=@p1这样写没错吧?
回复 使用道具 举报
BAZINGA
注册会员   /  发表于:2023-6-5 16:23:44
6#
Eden.Sun 发表于 2023-6-5 16:05
您好,您的存储过程做了哪些操作呢?就目前的机制来说,我们无法做到在查询数据之前调用您数据库中的存储过 ...

存储过程对多个表进行更新,并且返回多个表。这些表我建了不同数据集分多个表格控件展示。
我目前是将执行存储过程的语句作为一个数据集,但是由于只识别到返回的第一个表(此表我不需要在报表展示),所以我为了执行此数据集的语句,随便弄了个文本框绑了一个字段,并隐藏文本框。但是现在我需要多次刷新报表才看到存储过程被执行,我怀疑是不是跟执行顺序有关系。
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-6-5 16:05:35
5#
您好,您的存储过程做了哪些操作呢?就目前的机制来说,我们无法做到在查询数据之前调用您数据库中的存储过程。
咱们看看存储过程做了啥操作,看看能不能换一种方式实现。
回复 使用道具 举报
BAZINGA
注册会员   /  发表于:2023-6-5 10:24:21
4#
Eden.Sun 发表于 2023-6-5 10:13
您好,您的意思是,需要报表在预览查询数据之前,先调用您说的这个存储过程,然后在执行数据查询进行预览么 ...

可以这么说
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-6-5 10:13:27
3#
您好,您的意思是,需要报表在预览查询数据之前,先调用您说的这个存储过程,然后在执行数据查询进行预览么?
回复 使用道具 举报
最佳答案
最佳答案
Eden.SunWyn认证
超级版主   /  发表于:2023-6-5 09:31:02
来自 7#
本帖最后由 Eden.Sun 于 2023-6-6 12:04 编辑

您好,根据您的描述,可以这样绕一下实现,先添加对应的参数和存储过程,下图DataSet1是存储过程,DataSet2是数据集的表sql语句,在DataSet2中使用DataSet1的字段,这样就可以保证,先执行DataSet1在执行DataSet2。您可以参考下图测试看看。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部