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

Se Puede Uno De Tres Valores De Entrada?

Estas en el tema de Se Puede Uno De Tres Valores De Entrada? en el foro de SQL Server en Foros del Web. Hola Gente del Foro!!!!!!!!! Tengo nuevas preguntas para hacerles, ewn este caso tengo que crear un STORED PROCEDURE que le permita al usuario ingresar uno ...
  #1 (permalink)  
Antiguo 04/12/2006, 16:49
Avatar de lanzi  
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 55
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta Se Puede Uno De Tres Valores De Entrada?

Hola Gente del Foro!!!!!!!!!
Tengo nuevas preguntas para hacerles, ewn este caso tengo que crear un STORED PROCEDURE que le permita al usuario ingresar uno y solo uno de tres valores de entrada (puede ser por ejemplo el dni, o el apellido, o el nombre), y que me devuelva otros tantos valores de la misma persona como hago? Yo probe con algo similar a esto pero no se que pasa pero no funciona, ¿le agrego un OR entre las variables de entrada? ejemplo:

CREATE PROCEDURE XWWSDE
--VALORES DE ENTRADA
PUPUPU INT,
POPOPO VARCHAR (20),
PEPEPEP INT

--VALORES DE SALIDA
JOJOJOJOJ OUTPUT,
JAJAJAJAJAJ OUTPUT,
JIJIJIJIJIJIJI OUTPUT,
JUJUJUJUJUJU OUTPUT,
JEJEJEJEJEJEJ OUTPUT

AS SELECT
PEPEPEPEPPE
FROM
RARARARARARAR
WHERE
MIMIMIMIMIMIMI
GO
  #2 (permalink)  
Antiguo 04/12/2006, 19:33
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
los valores opcionales debes establcerlos con un valor default, es decir:
Código:
create proc sp_miproc
(
        @valorrequerido1 as int,
        @valoropcional1 as varchar = '',
        @valoropcional2 as int = 0,
        @valoropcional3 as varchar = null
)
as
/*todo el codigo aca*/
go
cuando mandes llamar a esta funcion simplemente ignora las variables que tiene con default, y tomara el valor que tiene por default, puedes llamarlo por posiciones o por nombre de variables, aunque es mas ordenado por nombre de variables, ya que te permite pasarle los parametros sin necesidad que este en la misma posicion que el parametro formal

Saludos!
  #3 (permalink)  
Antiguo 05/12/2006, 14:13
Avatar de lanzi  
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 55
Antigüedad: 18 años, 5 meses
Puntos: 0
O sea que el usuaio ingresara el valor opcional 2 por ejemñlo y le devolvera el SP los valores de esa persona? Quizas la pregunta resulte un poco obvia pero soy bastante nuevo en el tema...
  #4 (permalink)  
Antiguo 05/12/2006, 14:16
Avatar de lanzi  
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 55
Antigüedad: 18 años, 5 meses
Puntos: 0
Por ejemplo:
EXEC procedure
valor opcional 2 =56
go
??????????????????????
  #5 (permalink)  
Antiguo 05/12/2006, 15:54
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
En el ejemplo que te puse, el parametro ValorRequerido1 es requerido, por lo que tu llamada fallara, tendrías que hacer que este parametro tambien fuera opcional (poniendole un valor default como a los demás) y tu ejemplo funcionará

Saludos!
  #6 (permalink)  
Antiguo 05/12/2006, 17:58
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Depende del código que haya debajo, pero COALESCE te puede servir a tu propósito.

Esta función lo que hace es seleccionar el primero de los valores que sea diferente de NULL.

Por ejemplo COALESCE(@dato1, @dato2, @dato3, 'Opcion incorrecta') regresará el primer valor ingresado u 'opcion incorrecta' cuando todas las variables hallan sido NULL
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 11/12/2006, 17:10
Avatar de lanzi  
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 55
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Se Puede Uno De Tres Valores De Entrada?

Ok, lo voy a poner a funcionar a ver que pasa...GRACIAS DE NUEVO!!!!
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 20:15.