Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Help Con Este Procedure` (https://www.clubdelphi.com/foros/showthread.php?t=89347)

Ledian_Fdez 05-11-2015 21:50:48

Help Con Este Procedure`
 
Hola amigos tengo este procedimiento almacenado


Código SQL [-]
ALTER PROCEDURE COMPARE

AS

DECLARE @X INT
DECLARE @B INT
SET @B = 20

SELECT TOP 1 @X=IDMOVIMIENTO FROM MOVIMIENTO ORDER BY IDMOVIMIENTO DESC

IF @X>@B

PRINT @X + ' ES MAYOR QUE ' + @B

cuando lo ejecuto

Código SQL [-]
EXEC COMPARE

me lanza este error Conversion failed when converting the varchar value ' ES MAYOR QUE ' to data type int.


Grasias de antemano
Saludos,

roman 05-11-2015 22:14:13

No conozco SQL Server pero supongo que la concatenación de cadenas no se hace con el operador +. En tu expresión:

Código:

PRINT @X + ' ES MAYOR QUE ' + @B
seguramente intenta convertir la cadena a entero para acoplarse a los otros parámetros. Busca a ver si hay una función CONCAT.

// Saludos

fjcg02 05-11-2015 22:54:21

Hola

Dudo si un procedimiento puede hacer un print y que se vea algo...

Por otro lado, print sólo puede usarse con strings, aunque si pone PRINT @X siendo @X un entero, creo que hace la conversión automática.

Si quieres hacer lo que muestras, debes hacer un cast de los enteros.

PRINT cast(@X as varchar(20))+' HOLAKEASE '+cast(@B as varchar(20))

Saludos

Osorio 06-11-2015 14:24:25

Si lo que quieres es enviar un mensaje de error es mejor que veas:

RAISERROR

Ejemplo:

RAISERROR('esto es una prueba',16,217)


Si lo que quieres es indicar un estado o "informar" algo a tu aplicacion que consume el procedimiento almacenado, entonces puedes utilizar un parametro de salida OUTPUT.

Puedes darle un vistazo a este enlace:
https://technet.microsoft.com/es-es/...ql.105%29.aspx


La franja horaria es GMT +2. Ahora son las 16:04:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi