![]() |
Problemas con la devolución de resultados
Hola a todos.
He creado el siguiente procedimiento en el servidor SQL CREATE PROCEDURE [dbo].[acumula_piezas_defectuosas] @ID_Trabajo INT, @CodDefecto INT, @NumPiezas INT AS BEGIN SET IMPLICIT_TRANSACTIONS ON BEGIN TRY -- analiza si ya existen piezas en esta partida con el tipo de defecto SELECT * FROM DefectosTemp WHERE ID_Trabajo = @ID_Trabajo AND CodDefecto = @CodDefecto IF @@ROWCOUNT > 0 -- si ya hay piezas con ese defecto acumula las piezas UPDATE DefectosTemp SET NumPiezas = NumPiezas + @NumPiezas WHERE ID_Trabajo = @ID_Trabajo AND CodDefecto = @CodDefecto ELSE -- el tipo de defecto es nuevo para la partida actual y por ello crea un -- nuevo registro INSERT INTO DefectosTemp (CodDetalle, CodInstalacion, CodDefecto, NumPiezas, ID_Trabajo) SELECT CodDetalle, CodInstalacion, @CodDefecto, @NumPiezas, @ID_Trabajo FROM TrabajosActivos WHERE ID_Trabajo = @ID_Trabajo COMMIT TRANSACTION RETURN 0 -- Operación correcta END TRY BEGIN CATCH ROLLBACK TRANSACTION RETURN -4 END CATCH END y lo llamo con la siguiente consulta DECLARE @Ret INT EXECUTE @Ret = dbo.acumula_piezas_defectuosas :V0, :V1, :V2 SELECT Result = @Ret el proceso se ejecuta correctamente pero me devuelve el primer campo del primer select de la función en vez de @Ret Cómo podría solucionar esto? Espero vuestras respuestas. Gracias a todos |
Recuerda poner etiquetas con el código:
![]() . |
Mira si te es lo que quieres.
|
Cambia esto
por esto
|
En mi solución anterior olvide cambiar la parte de Return
|
| La franja horaria es GMT +2. Ahora son las 11:24:27. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi