Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Valor retorno SP SQL Server
Message
 
To
13/09/2006 19:57:55
Humberto Ramirez
H. Ayuntamiento de Colima
Colima, Mexico
General information
Forum:
Visual FoxPro
Category:
Client/server
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01153527
Message ID:
01153568
Views:
11
El S.P esta bien, lo unico que no controla es que el insert falle y tengas que revertir la transacción (Siempre hace Commit).
Una mejora que le haría sería:
INSERT INTO ...
If (@@error != 0)
    Begin
        SET @nIdEntrada = -1
        RollBack Tran EntradasAdd
    End
Else
    Begin
        SET @nIdEntrada = IDENT_CURRENT('Entradas')
        Commit tran EntradasAdd
    End
End
y cuando leas el resultado del S.P desde tu programa controles que no sea -1

>Gracias Ricardo, es exactamente lo que necesito. En cuanto a la concurrencia sí es necesario que tenga cuidado ¿Crees que el siguiente SP tenga algún inconveniente en ese sentido?
>
>
>CREATE PROCEDURE [Entradas_Add]
>	(@Fecha 	[datetime],
>	 @IdProveedor 	[int],
>	 @Factura 	[varchar](15),
>	 @FacturaFecha 	[datetime],
>	 @IVAPorcentaje [decimal](6,2),
>	 @IVA 	        [money],
>	 @Importe 	[money],
>	 @IdUsuario 	[varchar](20),
>	 @nIdEntrada    [int] OUTPUT)
>AS
>
>BEGIN TRANSACTION EntradasAdd
>
>INSERT INTO [Sitra].[dbo].[Entradas]
>	 ( [Fecha],
>	 [IdProveedor],
>	 [Factura],
>	 [FacturaFecha],
>	 [IVAPorcentaje],
>	 [IVA],
>	 [Importe],
>	 [IdUsuario])
>
>VALUES
>	( @Fecha,
>	 @IdProveedor,
>	 @Factura,
>	 @FacturaFecha,
>	 @IVAPorcentaje,
>	 @IVA,
>	 @Importe,
>	 @IdUsuario)
>
>SET @nIdEntrada = IDENT_CURRENT('Entradas')
>COMMIT TRANSACTION EntradasAdd
>GO
>
>
>
>Supongo que IDENT_CURRENT() me devolverá el Identity generado al momento de esa transacción.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform