Que tal Sres.
Soy nuevo en este asunto de SQL SEVER 2000, tengo el siguiente SP:
CREATE PROCEDURE spIsValidProdSrv
@iPlaceId int,
@iProdSrvid int,
@iNewProdSrvId int,
@iResult int output
AS
declare @iTienePack int,
@iTempProdSrvId int,
@sTempProdSrvType char(1)
/*create table #tblTemp(iTmpProdSrvId int, sTmpProdSrvType
char(1));*/
BEGIN
/* Procedure body */
set @iResult = 0;
create table #tblTemp(iTmpProdSrvId int, sTmpProdSrvType char(1));
if @iProdSrvId = @iNewProdSrvId
set @iResult = 1
if exists (select fkProdSrvId
from tblPlaceProdSrvKit
where fkKitID = @iProdSrvId /* filtra segun id de paquete */
and fkplaceid = @iPlaceId /* filtra segun lugar */
and fkProdSrvId = @iNewProdSrvId)
set @iResult = 1
if @iResult = 0
begin
/* primer inserto a la tabla temporal los prod que ya tiene el
paquete */
insert into #tblTemp
select a.fkProdSrvId,b.ProdSrvType
from tblPlaceProdSrvKit a, tblProdsrv b
where a.fkKitID = @iProdSrvId /* filtra segun id de paquete */
and a.fkplaceid = @iPlaceId /* filtra segun lugar */
and b.pkProdSrvID = a.fkProdSrvID /* para obtener el tipo de cada
item asociado al paquete */
/* despues el prod que se quiere insertar */
insert into #tblTemp
select @iNewProdSrvId, ProdSrvType from tblProdSrv
where pkProdSrvId=@iNewProdSrvId
set @iTienePack = 0
while @iTienePack = 0
begin
if exists (select * from #tblTemp where sTmpProdSrvType='K')
begin
declare CursorTemp cursor READ_ONLY STATIC LOCAL for
select iTmpProdSrvId,sTmpProdSrvType
from #tblTemp
open CursorTemp
WHILE @@FETCH_STATUS = 0
begin
fetch next from CursorTemp into @itempprodsrvid ,
@stempprodsrvtype
if @iTempProdSrvId=@iProdSrvId
begin
set @iResult = 1
set @iTienePack = 1 /* me salgo del otro while */
break
end
if @sTempProdSrvType = 'K' /* descompongo un paquete
*/
begin
insert into #tblTemp
select a.fkProdSrvId,b.ProdSrvType
from tblPlaceProdSrvKit a, tblProdsrv b
where a.fkKitID = @iTempProdSrvId /* filtra segun id
de paquete */
and a.fkplaceid = @iPlaceId /* filtra segun lugar
*/
and b.pkProdSrvID = a.fkProdSrvID /* para obtener el
tipo de cada item asociado al paquete */
delete from #tblTemp where
iTmpProdSrvId=@iTempProdSrvId
break /* me salgo del while */
end
end
Close CursorTemp
Deallocate CursorTemp
end else
set @iTienePack = 1
end
end
drop table #tblTemp
END
GO
Desde el Query Analyzer lo ejecuto de la siguiente forma:
declare @res int exec spIsValidProdSrv 1,12,13, @res output Select @res
Valor
Y me funciona, pero desde mi aplicacion me marca el siguiente error:
"El nombre de objeto '#tblTemp' no es válido."
Aguna idea de que pueda estar haciendo mal.
Saludos
Leer las respuestas