10/11/2008, 13:05
|
| | | 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 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 |