设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2164|回复: 1
打印 上一主题 下一主题

关于存储过程求助

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-21 10:55:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
存储过程如下,功能 分别判断四个输入参数,如果为空舍弃本条件,有值则使用本条件,
ALTER PROC dbo.sel_zm_azh1
(@cxzyml nvarchar(50),
@cxzymx nvarchar(50),
@cxksrq nvarchar(50),
@cxjsrq nvarchar(50))
as
declare @sql nvarchar(2000),
        @where nvarchar(2000)
set @where='where 1=1 '
if (@cxzyml<>null) set  @where= @where + 'and zyml='''+ @cxzyml + ''''
if (@cxzymx<>null) set  @where= @where + 'and zymx='''+ @cxzymx + ''''
if (@cxksrq<>null and @cxjsrq<>null) set  @where= @where + 'and jzrq BETWEEN '''+ @cxksrq + ''' and ''' +@cxjsrq + ''''
set @sql= ' SELECT jzxh, jzrq, jzje, jzbz, zyml, zymx  FROM dbo.jxjcz ' + @where
print @sql
exec(@sql)

请教为什么用查询分析器能正常返回数据,但在ADP中调用却显示,存储过程执行成功但未返回记录??另请教,当在查询窗体中要做筛选时,如何跟据当前窗体上控件上的输入值做为条件来筛选?上面的方法是创建带参数的存储过程,然后在窗体中增加与输入参数同名的控件,为了能在输入值为空时选择所有记录,固加了判断条件。另一方法创建不带参数的存储过程(选择所有记录),然后通过窗体上控件的输入值做子窗体上的上的筛选,请问这两种方法哪种速度快,第二种方法已调试成功,但当选择全部时,数据量约800条时感觉速度不行了,更新一下要等好几秒。。     

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-2-27 18:44:40 | 只看该作者
set nocount on
as
.....
试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 07:51 , Processed in 0.088014 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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