Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 04-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Código Delphi [-]

with TuQuery do begin
 If Active then Close;
 SQL.Clear;
 SQL.Add('Insert into UnaTabla(campo1, Campo2)');
 SQL.Add('Values( :Campo1, :Campo2)');
 ParamByName('Campo1').AsString := UnEdit.Text;
 ParamByName('Campo2').AsInteger := JediValidateEdit.AsInteger;
 TuBaseDatos.StartTransaction;
 Try
  ExecSQL;
 Except on E:Exception do begin
   TuBaseDatos.Rollback;
   Raise;
   Exit;
  end; //execpt
 End; //Try
 TuBaseDatos.Commit;

 If Active then Close;
 SQL.Clear;
 SQL.Add('Select * from TuTabla');
 Open;
 TuDBGrid.Refresh;
end; //with

Si te fijas, en caso de error, primero se hace el RollBack y luego se presenta el mensaje de error. Hay que tener cuidado con esto porque es muy común que primero muestran el mensaje de error y después hacen el rollback. El problema con eso, es que cuando a un usuario le aparece el mensaje de error, así lo deja en la pantalla hasta que alguien le explica cuál fue el problema, o incluso dejan el mensaje en pantalla y se van a comer. Y al dejar el mensaje en la pantalla, el rollback nunca se ejecuta y dejan la transacción activa, ocasionando que el sistema se bloquee. Por eso es importante hacer primero el rollback y después mostrar el mensaje.
__________________


Última edición por ContraVeneno fecha: 04-09-2007 a las 16:48:03.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ejemplo de rup droguerman OOP 3 02-03-2007 18:15:07
Algun ejemplo de acción fasthorse C++ Builder 2 06-02-2007 20:36:12
Ejemplo de OOP David OOP 5 07-11-2006 15:02:07
Algun ejemplo de Rave Reports brakaman Impresión 1 07-09-2006 01:54:35
Tqrchar, algun ejemplo URBANO Impresión 2 13-07-2004 13:23:58


La franja horaria es GMT +2. Ahora son las 01:34:52.


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
Copyright 1996-2007 Club Delphi