|
存储过程如下,功能 分别判断四个输入参数,如果为空舍弃本条件,有值则使用本条件,
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条时感觉速度不行了,更新一下要等好几秒。。 |
|
|