请教一存储过程查不出数据问题?
是这样的:
'存储过程内容:
CREATE PROCEDURE shop_puserid
@ids varchar(100) =null
AS
select P.id,M.id,M.username,M.zx_name,M.Folder_b,M.Folder_b,P.p_name,P
.p_userid from [Member] as M,[Product] as P where P.id in(@ids) and M.id=P
.p_userid
GO
'调用:
<%
ids = request.QueryString( "offer_ids ") '获取到的产品Product的p_userid字段集
set objCmd=Server.CreateObject( "Adodb.Command ")
objCmd.ActiveConnection=conn
objCmd.CommandText= "shop_puserid "
objCmd( "@ids ")=ids
set rs=objCmd.execute
%>
我如果直接用recordset把SQL语句打开是可以查到rs记录集的。
可是改成存储过程就查不到了
也没发现问题,难不成要用declare?
到底怎么改呢?请更正,多谢各位前辈!?
------解决方案--------------------晕了
把程序和数据库发来,我试试
QQ:381584252(隐身中)
电邮:hztgcl1986@163.com
------解决方案--------------------他这个存储过程就有问题,存储过程我已经解决了,但是我循环的时候总是报错
“对象关闭时,不允许操作”
还没有查到解决办法
我把存储过程给你吧
CREATE PROCEDURE shop_puserid
@id varchar(100)
AS
Set Nocount On
declare @pos int
declare @oldPos int
declare @tempstr varchar(100)
create table #temp_id
(
id int
)
set @pos=1
set @oldPos=1
while @pos <len(@id)
begin
set @pos=charindex( ', ',@id,@oldpos)
if @pos> 0
begin
set @tempstr=substring(@id,@oldpos,@pos-@oldpos)
set @oldpos=@pos+1
end
else
begin
set @tempstr=substring(@id,@oldpos,len(@id)-@oldpos+1)
set @pos=len(@id)
end
insert into #temp_id
select @tempstr
end
select P.id,M.id,M.username,M.zx_name,M.Folder_b,M.Folder_b,P.p_name,P
.p_userid from [Member] as M,[Product] as P where P.id in(select id from #temp_id where id is not null) and M.id=P.p_userid
drop table #Temp_id
GO