Procedimiento Almacenado, AYUDA!!!!!
Publicado por Christian D. (3 intervenciones) el 18/05/2005 16:08:25
Hola, necesito validar de alguna forma la longitud de un campo que se ingresa a la base de datos, por código de la aplicación no puedo, ya que no la hice yo y no dispongo del código fuente para realizar la modificación. La aplicación cuando inserta los registros en la base de datos llama a un procedimiento almacenado:
CREATE PROCEDURE [spInsertaxx]
(@xx_1 [varchar](50),
@xx_2 [varchar](50),
@xx_3 [datetime],
@xx_4 [datetime],
@xx_5 [datetime],
@xx_6 [varchar](50),
@xx_7 [varchar](50),
@xx_8 [varchar](255),
@xx_9 [varchar](1000),
@xx_10 [varchar](50),
@xx_11 [varchar](50),
@Observaciones_12 [varchar](1000))
AS INSERT INTO [Agentes].[dbo].[tablaxx]
( [xx1],
[xx2],
[xx3],
[xx4],
[xx5],
[xx6],
[xx7],
[xx8],
[xx9],
[xx10],
[xx11],
[Observaciones])
VALUES
( @xx_1,
@xx_2,
@xx_3,
@xx_4,
@xx_5,
@xx_6,
@xx_7,
@xx_8,
@xx_9,
@xx_10,
@xx_11,
@Observaciones_12)
GO
Modifiqué el procedimiento almacenado, pero no me dio resultado:
ALTER PROCEDURE [spInsertaxx]
(@xx_1 [varchar](50),
@xx_2 [varchar](50),
@xx_3 [datetime],
@xx_4 [datetime],
@xx_5 [datetime],
@xx_6 [varchar](50),
@xx_7 [varchar](50),
@xx_8 [varchar](255),
@xx_9 [varchar](1000),
@xx_10 [varchar](50),
@xx_11 [varchar](50),
@Observaciones_12 [varchar](1000))
AS
SET NOCOUNT ON
IF LEN(@Observaciones_12) > 1000
return(0)
--Esta modificación valida que el largo del campo observaciones no sea mayor a 1000 caracteres
INSERT INTO [Agentes].[dbo].[tablaxx]
( [xx1],
[xx2],
[xx3],
[xx4],
[xx5],
[xx6],
[xx7],
[xx8],
[xx9],
[xx10],
[xx11],
[Observaciones])
VALUES
( @xx_1,
@xx_2,
@xx_3,
@xx_4,
@xx_5,
@xx_6,
@xx_7,
@xx_8,
@xx_9,
@xx_10,
@xx_11,
@Observaciones_12)
GO
El problema es que la longitud del campo “observaciones” en la tabla está definido como varchar(1000) y los usuarios de la aplicación descubrieron que ingresando una cantidad de caracteres mayor a 1000 la aplicación se cae.
Por favor necesito ayuda con esto, de que otra forma puedo validar por medio de la base de datos que la longitud del campo “observaciones” no sea mayo a mil caracteres???
Gracias.
CREATE PROCEDURE [spInsertaxx]
(@xx_1 [varchar](50),
@xx_2 [varchar](50),
@xx_3 [datetime],
@xx_4 [datetime],
@xx_5 [datetime],
@xx_6 [varchar](50),
@xx_7 [varchar](50),
@xx_8 [varchar](255),
@xx_9 [varchar](1000),
@xx_10 [varchar](50),
@xx_11 [varchar](50),
@Observaciones_12 [varchar](1000))
AS INSERT INTO [Agentes].[dbo].[tablaxx]
( [xx1],
[xx2],
[xx3],
[xx4],
[xx5],
[xx6],
[xx7],
[xx8],
[xx9],
[xx10],
[xx11],
[Observaciones])
VALUES
( @xx_1,
@xx_2,
@xx_3,
@xx_4,
@xx_5,
@xx_6,
@xx_7,
@xx_8,
@xx_9,
@xx_10,
@xx_11,
@Observaciones_12)
GO
Modifiqué el procedimiento almacenado, pero no me dio resultado:
ALTER PROCEDURE [spInsertaxx]
(@xx_1 [varchar](50),
@xx_2 [varchar](50),
@xx_3 [datetime],
@xx_4 [datetime],
@xx_5 [datetime],
@xx_6 [varchar](50),
@xx_7 [varchar](50),
@xx_8 [varchar](255),
@xx_9 [varchar](1000),
@xx_10 [varchar](50),
@xx_11 [varchar](50),
@Observaciones_12 [varchar](1000))
AS
SET NOCOUNT ON
IF LEN(@Observaciones_12) > 1000
return(0)
--Esta modificación valida que el largo del campo observaciones no sea mayor a 1000 caracteres
INSERT INTO [Agentes].[dbo].[tablaxx]
( [xx1],
[xx2],
[xx3],
[xx4],
[xx5],
[xx6],
[xx7],
[xx8],
[xx9],
[xx10],
[xx11],
[Observaciones])
VALUES
( @xx_1,
@xx_2,
@xx_3,
@xx_4,
@xx_5,
@xx_6,
@xx_7,
@xx_8,
@xx_9,
@xx_10,
@xx_11,
@Observaciones_12)
GO
El problema es que la longitud del campo “observaciones” en la tabla está definido como varchar(1000) y los usuarios de la aplicación descubrieron que ingresando una cantidad de caracteres mayor a 1000 la aplicación se cae.
Por favor necesito ayuda con esto, de que otra forma puedo validar por medio de la base de datos que la longitud del campo “observaciones” no sea mayo a mil caracteres???
Gracias.
Valora esta pregunta


0