Ver Mensaje Individual
  #4  
Antiguo 11-12-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Reputación: 23
poliburro Va por buen camino
Oks, Mira en SQl server las transacciones las puedes manejar desde el mismo motor de base de datos haciendo uso de procedimientos almacenados, de esa manera los bloqueos evitan que las acciones concurrentes generen resultados imprevistos.


Aca un scrip que modifiqué en el siguiente post

Código SQL [-]
/******************************************************/
/* Este procedimiento almacenado establece la fecha de débito de       */
/* un cheque. La fecha debe ser convertida a char en formato 120      */
/******************************************************/
 CREATE 
   PROCEDURE spDebitarCheque 
     (
       @IdCheque int, --Define el Id del Cheque
       @FechaDebito Char(10) --Define la fecha de débito del cheque (formato 120)
     )
 AS 
  Declare
    @VDtFecDebito As DateTime --Almacena en formato DateTime la fecha del débito

  --Con esto aseguras que sin importar la configuración de sql server
  -- o del cliente el valor de fecha será traducido de manera satisfactoria
  Set @VDtFecDebito = Convert(DateTime,@FechaDebito,120)

  --Se inicia la transacción
  Begin tran 
     UPDATE Cheque.dbo.Cheques
        SET FechaDebito = @VDtFecDebito   
      WHERE IdCheque =@IdCheque
     If @@ERROR <> 0 
        Begin
          Rollback Tran
          GoTo ErrorHandler
        End
  Commit Tran

Return

ErrorHandler:
  --Tratamiento del error
Responder Con Cita