大大们救救我啊只有50分了(50分)

  • 主题发起人 主题发起人 疾风之龙
  • 开始时间 开始时间

疾风之龙

Unregistered / Unconfirmed
GUEST, unregistred user!
我在调用存储过程时一直很正常,最近突然调用时报错,如下
‘ADOStoredProcl:CommandText does not return a result set’

我的存储过程如下
CREATE proc tree
@qx varchar(2)='',
@a varchar(2)='02',
@b varchar(2)='03'
as
Declare @WhereStr varchar(200)
set @WhereStr=''
create table #temp1(fl_id varchar(8),fl_name varchar(12),fl_bm varchar(8))
insert into #temp1(fl_id,fl_name,fl_bm)
select fl_id,fl_name,fl_bm
from lev
if @qx='0'
set @WhereStr=@WhereStr+' and 1=1'
if @qx='1'
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@b+'%'+''''
if @qx='2'
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@a+'%'+''''
if @qx='3'
begin
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@b+'%'+''''
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@a+'%'+''''
end
EXEC('select * from lev where 1=1'+@WhereStr)
return

望大大教我该怎么处理,急求


 
EXEC('select * from lev where 1=1'+@WhereStr)
好象不是同一个事务.比如
你用EXEC生成一个局部临时表,
后面不能调用.所以存贮过程改为:

CREATE proc tree
@qx varchar(2)='',
@a varchar(2)='02',
@b varchar(2)='03'
as
Declare @WhereStr varchar(200)
set @WhereStr=''
create table #temp1(fl_id varchar(8),fl_name varchar(12),fl_bm varchar(8))
insert into #temp1(fl_id,fl_name,fl_bm)
select fl_id,fl_name,fl_bm
from lev
--sle
select top 0 * into ##bb_tmp
if @qx='0'
set @WhereStr=@WhereStr+' and 1=1'
if @qx='1'
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@b+'%'+''''
if @qx='2'
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@a+'%'+''''
if @qx='3'
begin
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@b+'%'+''''
set @WhereStr=@WhereStr+' and fl_id not like'+''''+@a+'%'+''''
end
EXEC('insert into ##bb_tmp select * from lev where 1=1'+@WhereStr)
select * from ##bb_tmp
return
 
不好意思 少了个 FROM LEV 即:
select top 0 * into ##bb_tmp
from lev
 
还是不行啊,我该怎么办啊,55555:([:(]
 
你把return做为一个record set 来处理了。
 
多谢各位
问题解决了
存储过程不返回结果,所以不能用open调用过程,呵呵[:D]
 
后退
顶部