Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   transacciones en cs - alguien sabe? (https://www.clubdelphi.com/foros/showthread.php?t=37829)

pmfras 23-11-2006 19:52:59

transacciones en cs - alguien sabe?
 
estimado foro

estoy haciendo un trabajo con delphi7 y interbase, pretendo hacer un cliente servidor pero tengo una duda:

en el lado del cliente uso:

cliente
socketcliente
stocketconection

en el servidor
coneccion
dataset
provider
socketserver

mi gran duda es como uso transacciones yo lo hacia asi:

Transaccion.TransactionID := 600;
Transaccion.IsolationLevel := xilREADCOMMITTED;
modulodedatos.Coneccion.StartTransaction(Transaccion);

programa

modulodedatos.Coneccion.commit(transaccion);

ahora como lo haria? espero sugerenciasssssssssss

poliburro 08-12-2006 23:46:10

Yo en lo personal dejaría las transacciones del lado del servidor,


considero que es más optimo centralizarlas que dejarlas al albedrio de N clientes en la red

pmfras 11-12-2006 15:52:23

como haria?
 
gracias por responderrrrrrrrrrrrrrrrrrrr!!!!!!!!!!!!!!!!!!!, como seria del lado del servidor, tirame una pista que la preciso, y sos el unico que respondio en mucho tiempo y lo preciso urgentisimo

muchisimas gracias.

poliburro 11-12-2006 18:26:05

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


La franja horaria es GMT +2. Ahora son las 17:58:48.

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