高手帮我看一眼.我实在是看不出来(0分)

  • 主题发起人 主题发起人 xuzhic2001
  • 开始时间 开始时间
X

xuzhic2001

Unregistered / Unconfirmed
GUEST, unregistred user!
我有下面的一个存储过程
CREATE procedure find1(
@tablex varchar(30),
@fieldx varchar(30),
@editlook varchar(30),
@ywy varchar(30)
)
as
begin
declare
@tmpsql varchar(500)
set @tmpsql=''
set @tmpsql = @tmpsql + 'select * from '+@tablex + ' where '+@fieldx+' like '+@editlook+' and yewuyuan is null or yewuyuan='+@ywy+''
exec(@tmpsql)
end
GO

可是在程序调用的时候老是提示在 like 处出现错误,我找了半天也没有找到原因,传递的参数是没有问题的,存储过程怎么跟踪?高手过目
 
@tmpsql + 'select ?
 
高手来帮我看看阿
 
like前面有没有空格?
 
set @tmpsql = @tmpsql + 'select * from '+@tablex + ' where '+@fieldx+' like '+''''+@editlook+''''+' and yewuyuan is null or yewuyuan='+@ywy+''
 
还有另外一个
CREATE procedure find1_xi(
@tablex varchar(30),
@fieldxx varchar(30),
@str varchar(30))
as
begin
declare
@tmpsql varchar(500)
set @tmpsql=''
set @tmpsql = @tmpsql + 'select * from '+@tablex +' where '+@fieldxx+' = '+@str+' order by shunxuhao'
exec(@tmpsql)
end
GO

显示列12345无效,12345是参数@str的值.怎么会列无效呢,真不明白
 
to 无忧鱼:按照你的写法 查出来的都是空了
 
set @tmpsql = @tmpsql + 'select * from '+@tablex + ' where '+@fieldx+' like '+ ''+@editlook+' and yewuyuan is null or yewuyuan='+@ywy+''
 
set @tmpsql = @tmpsql + 'select * from '+@tablex +' where '+@fieldxx+' = '''+@str+''' order by shunxuhao'
 
set @tmpsql = @tmpsql + 'select * from '+@tablex + ' where '+@fieldx+' like '+ ''''+@editlook+''' and yewuyuan is null or yewuyuan='+@ywy+''
 
我在查询分析器里面检验按照无忧鱼的写法是正确的,
现在又出现了问题,怎么让这个存储过程查询的结果在dbgrideh里面显示出来,我用querya与dbgrideh连接,再用querya执行存储过程,感觉逻辑上有错误,所以查询的结果在界面上显示不出来
 

Similar threads

后退
顶部