Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Regreso de "Query" como variable de salida en SP

Estas en el tema de Regreso de "Query" como variable de salida en SP en el foro de SQL Server en Foros del Web. Saludos foro. Necesito realizar lo sig. Que al ejecutar un SP me regrese como texto o cadena, el tipo de transaccion que se realizo (si ...
  #1 (permalink)  
Antiguo 09/06/2006, 11:31
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Regreso de "Query" como variable de salida en SP

Saludos foro.

Necesito realizar lo sig.

Que al ejecutar un SP me regrese como texto o cadena, el tipo de transaccion que se realizo (si se realizo), es decir por ejemplo si tengo el sig. SP:


Código:
CREATE procedure spInsMarca
@marca char(50)
 AS
set nocount on
set @marca=upper(@marca)

if not exists(select 1 from marca where rtrim(marca)=rtrim(@marca))
	insert into marca values(@marca)
GO
Supongamos que el SP adquiere el valor "Samsung" en la variable @marca, lo que quiero que me regrese el SP es lo sig.

insert into marca values(Samsung)

Y despues en el codigo ASP cachar la variable del SP que contiene esa informacion del insert.

Gracias de antemano.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #2 (permalink)  
Antiguo 09/06/2006, 12:04
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hola kire94:
Bueno, primero lo que puedes hacer es agregar un parámetro más al procedure, que sea del tipo OUT y con un tipo de dato que pueda almacenarte cadenas grandes (no se sSel VARCHAR2(500) OUT).
Luego en la condición puedes "armar" tu sentencia dependiendo de los campos, y concatenando los valores, y esa concatenación la asignas a tu parámetro de salida. En ASP solo capturas esa variable y la muestras
Solo una idea....
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 09/06/2006, 12:37
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Perfecto !!!!!!!!!!!!!

Cita:
Iniciado por PequeñoMauro
Hola kire94:
Bueno, primero lo que puedes hacer es agregar un parámetro más al procedure, que sea del tipo OUT y con un tipo de dato que pueda almacenarte cadenas grandes (no se sSel VARCHAR2(500) OUT).
Luego en la condición puedes "armar" tu sentencia dependiendo de los campos, y concatenando los valores, y esa concatenación la asignas a tu parámetro de salida. En ASP solo capturas esa variable y la muestras
Solo una idea....
Saludos
Gracias por la ayuda PequeñoMauro.

Ya lo hice como me diste la idea, pero a la hora de declarar la variable nvarchar(4000) como output, me da un error el SP, abajo te pongo el codigo y para quien lo quiera.

Código:
CREATE procedure spInsMarca
@marca char(50),
@Res_SP int output

 AS

set nocount on

declare @cmd nvarchar(4000) --Si aqui yo pongo declare @cmd nvarchar(4000) output, es donde me da el error "Cannot use the OUTPUT option in a DECLARE statement

set @marca=upper(@marca)
set @Res_SP=0 


if not exists(select 1 from marca where rtrim(marca)=rtrim(@marca))
begin
	SET @cmd = 'insert into marca values("' + @marca + '")'
	IF @@Error = 0
		set @Res_SP=1
		EXEC sp_executesql @cmd, N'@marca char(50)', @marca = marca

end
GO
O de que manera puedo regresarle la variable @cmd a la pag ASP y de que manera la cacho sin tener que utilizar output (variable de salida), me imagino que se puede hacer con RETURN @cmd, pero no se bien de que manera hacerlo en el SP y cacharlo en ASP.
__________________
"La adulación es una moneda que empobrece al que la recibe"

Última edición por kire94; 09/06/2006 a las 12:42
  #4 (permalink)  
Antiguo 09/06/2006, 13:20
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hola:
Debes ponerlo en la parte de los parámetros:
Cita:
CREATE procedure spInsMarca
@marca char(50),
@cmd nvarchar(4000) output
AS
.......
A la hora que haces el SET @cmd = 'insert into marca values("' + @marca + '")', le estas asignando y es lo que te va a retornar. En el ASP solo muestras esa variable @cmd.
Espero que te sirva, saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.