SQL - Este SP jala a medias

 
Vista:

Este SP jala a medias

Publicado por Ernesto (12 intervenciones) el 30/09/2004 15:59:19
Saludos a todos

Resulta que tengo el siguiente SP el cual checa si el registro existe, de no ser asi lo crea y posteriormente tiene que regresar un registro asi mismo si el registro ya existe mediante un parametro que le envio le indico que tiene que hacer o no una actualizacion del registro y en cualquiera de esos dos casos tambien me tiene que regresar un registro con una consulta.

CREATE PROCEDURE CheckDispReg01
@Id int,
@IdCatAreasINEGI int,
@OtrasAreas varchar(255),
@Act int = 0
as

declare @CuestExist int
declare @Sqltxt varchar(8000)

if (@Id <> 0)
begin
set @CuestExist = (select count(IdCuest) from IdeAreaINEGIResRel where IdCuest = @Id)
if (@CuestExist = 0)
begin
insert IdeAreaINEGIResRel (IdCuest, IdCatAreasINEGI, OtrasAreas) values (@Id, 0,'' )
end
else
begin
if (@Act = 1) update IdeAreaINEGIResRel set IdCatAreasInegi =@IdCatAreasINEGI , OtrasAreas = @OtrasAreas where IdCuest = @Id
end
end

--select IdCatAreasINEGI as ID, OtrasAreas from IdeAreaINEGIResRel where IdCuest = @Id

Set @Sqltxt = 'select IdCatAreasINEGI as ID, OtrasAreas from IdeAreaINEGIResRel where IdCuest = ' + str(@Id)
--Set @Sqltxt = @Sqltxt + ' union Select 10000 as ID, '''' as OtrasAreas order by ID desc'

exec(@Sqltxt)
GO

Ahora bien el problema es el siguiente cuando lo ejecuto en el analizador de consultas resulta que todo trabaja muy bien ya que en cualquiera de los 3 casos que se presenten este me regresa la consulta con el registro que solicite sin problemas pero si lo ejecuto a traves de una pagina asp resulta que este no funciona, la pagina web me manda un error diciendo que no puede trabajar con un recordset cerrado... eso sucede en caso de que este haciendo una insercion de registro o actualizacion

La verda ya me tiene medio loco el problemita

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Este SP jala a medias

Publicado por Isaías Islas (5072 intervenciones) el 01/10/2004 18:29:15
CREATE PROCEDURE pr_CheckDispReg01
@Id int,
@IdCatAreasINEGI int,
@OtrasAreas varchar(255),
@Act int = 0
as

SET NOCOUNT ON
DECLARE @Sqltxt NVARCHAR(8000)

IF (@Id <> 0)
BEGIN
IF EXISTS(SELECT IdCuest FROM IdeAreaINEGIResRel WHERE IdCuest = @Id)
UPDATE IdeAreaINEGIResRel SET IdCatAreasInegi =@IdCatAreasINEGI , OtrasAreas = @OtrasAreas WHERE IdCuest = @Id
ELSE
INSERT IdeAreaINEGIResRel (IdCuest, IdCatAreasINEGI, OtrasAreas) VALUES (@Id, 0,'' )
END

SELECT IdCatAreasINEGI as ID, OtrasAreas from IdeAreaINEGIResRel where IdCuest = @Id

/* A todo este codigo, no le encuentro ningun sentido, aunque lo pongo por si acaso.
--select IdCatAreasINEGI as ID, OtrasAreas from IdeAreaINEGIResRel where IdCuest = @Id

Set @Sqltxt = N'select IdCatAreasINEGI as ID, OtrasAreas from IdeAreaINEGIResRel where IdCuest = ' + str(@Id)
--Set @Sqltxt = @Sqltxt + ' union Select 10000 as ID, '''' as OtrasAreas order by ID desc'

EXEC sp_executesql @Sqltxt
*/ -----------------------------------------------------------------
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Este SP jala a medias

Publicado por Ernesto (12 intervenciones) el 03/10/2004 18:58:31
ok ya lo estoy probando gracias por la ayuda

las lineas que comentabas solo las tenia por que estaba haciendo varias pruebas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar