Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/11/2008, 13:05
Avatar de chaka106
chaka106
 
Fecha de Ingreso: julio-2008
Ubicación: Un Punto En Mapa Central De Mexico
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: ayuda con un proc. alm.

Cita:
Iniciado por daniel00 Ver Mensaje
Tu problema es muy fácil pero te entendí muy poco.

Para la parte de "armar" tu mensaje, lo puedes hacer con un REPLACE, por ejemplo:

Código:
DECLARE @mensaje Varchar(1000)

SET  @mensaje = 'La matricula &matricula para el alumno &alumno de la carrera &carrera es incorrecta'

SELECT  @mensaje

SET  @mensaje = REPLACE (@mensaje , '&matricula', '12345467890')
SET  @mensaje = REPLACE (@mensaje , '&alumno', 'chaka106')
SET  @mensaje = REPLACE (@mensaje , ' &carrera', 'compu')

SELECT  @mensaje
La parte que no entendí me imagino que es el caso donde si hubo información para el alumno, la cual supongo sabes como buscarla, y ya sólo te queda "armar" el mensaje de la consulta, que es igual como se armo el de error, con REPLACE.

Otro tip es que seguramente vas a usar los CONVERT O CAST, que se utlizan para concatenar.
Código:
CONVERT(VARCHAR, @miVariable)  
CAST( @miVariable As VARCHAR(100) )
Saludos.
OK me va a servir ese codigo, te muestro lo que llevo
Código:
USE [CxC]
GO
/****** Object:  StoredProcedure [dbo].[usp_MensajeError]    Script Date: 11/10/2008 11:59:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Sergio de Jesus Tamayo Ortiz>
-- Create date: <Create Date,,31/10/2008>
-- Description:	<Description,,Obtiene el texto del mensaje de error>
-- =============================================
ALTER PROCEDURE [dbo].[usp_MensajeError] 
	@MensajeID varchar(7),
    @MsjVar varchar(500),
    @MsjError varchar(1000) output
    AS
SET NOCOUNT ON;
IF NOT EXISTS (SELECT MensajeCorto FROM Mensajes WHERE MensajeID=@MensajeID)
BEGIN
SET @MsjError='No se encontró el mensaje de error';
SELECT @MsjError    
END;
ELSE
BEGIN
CREATE TABLE Palabras(Palabra varchar(500));
---estas lineas separan los campos que vienen dentro de los parametros de entrada, los separa uno en cada columna----
	INSERT INTO Palabras SELECT NullIf(SubString(','+@MsjVar+',',ID,CharIndex(',',','+@MsjVar+',',ID)-ID),'')AS word
    FROM Tally
    WHERE ID<=Len(','+@MsjVar+',') AND SubString(','+@MsjVar+',',ID-1,1)=',';
-----------------------------Fin de Rutina para separar por comas---------------------------------------------------- 
    DROP TABLE Palabras;
END;
GO
bien ahora ahi les va la explicacion si encuentra el mensaje, va a checar si los parametros que reemplazara son los correctos si hay uno menos o uno mas mande mensaje de error, esto lo pensaba hacer con un @@rowcount si es = al numero de variables hacer el replace esto con la ayuda de un cursor para pasarle el valor a la variable ke estoy intercambiando espero haberme entendido