Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 05-05-2007
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 21
fedelphi Va por buen camino
Egostar creo que despues de investigar un poco con la informacion del hilo que diste en el mensaje anterior llegue a una solucion con los aportes de ronpablo, muchas gracias ronpablo. Esto es para que me corrijan por favor si estoy equivocado, ya que estoy aprendiendo, ya que son observaciones de practicar e investigar y la experiencia luego nos dara la razon si es que la tenemos. Bueno primero lo que pasaba es que al realizar el commit IBTransaction1.Commit, se desctiva la transaccion y todas las tablas por lo que sale el error "no se puede realizar la operacion en un dataset cerrado" entonces lo hice asi:
Código Delphi [-]
try
            if not modulodatos.IBTransaction1.Active then
              modulodatos.IBTransaction1.StartTransaction;
            if not Modulodatos.IBTAlmacen.Active then
              Modulodatos.IBTAlmacen.Active:=True;
            modulodatos.IBTAlmacen.Append;
            modulodatos.IBTAlmacen.FieldByName('ID_ALMACEN').AsInteger:=1;
            modulodatos.IBTAlmacen.FieldByName('NRO_TICKET').AsString:=ECodigo.Text;
            modulodatos.IBTAlmacen.FieldByName('ID_SUCURSAL').AsInteger:=Tag; //en el tag del este form paso el id de la sucursal desde el form ppal
            modulodatos.IBTAlmacen.FieldByName('ID_TICKET').AsInteger:=id_ticket;
            modulodatos.IBTAlmacen.FieldByName('FECHA_PRESENTACION').AsDateTime:=Date;
            modulodatos.IBTAlmacen.FieldByName('MONTO').AsFloat:=Monto;
            modulodatos.IBTAlmacen.FieldByName('FECHA_INGRESO').AsDateTime:=Date;
            modulodatos.IBTAlmacen.FieldByName('NRO_CAJA').AsInteger:=RGCajas.ItemIndex+1;
            modulodatos.IBTAlmacen.Post;
            modulodatos.IBTransaction1.CommitRetaining;

           
          except
            on E:Exception do
            begin
              modulodatos.IBTransaction1.Rollback;
              showmessage('Error al insertar en base de datos. '+e.Message);
            end;
          end;

entonces con el commit se cierra todo lo que dije anteriormente, pero con commitretaining no se cierran, siguen en el mismo estado en el que estaban cuando empieza la transaccion. Espero haber sido de ayuda, ah y me olvidaba, gracias a caral tambien por lo de la excepcion con el rollback, le agregue el mensaje para saber en caso de que se produzca algun error saber de que se trata. Saludos a todos y muchas gracias!!!!!
Fede
__________________
De lo que hay no falta nada!!!
Responder Con Cita
 



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
refresco de datos en red valdorre Conexión con bases de datos 8 05-05-2007 02:16:07
Refresco datos FireBird Io Conexión con bases de datos 2 06-08-2005 18:44:59
Refresco de Datos en Interbase PINO72 Firebird e Interbase 6 14-02-2005 18:21:30
Refresco de Datos con ADO Ivr Conexión con bases de datos 1 15-10-2004 14:11:07
Refresco de datos con ADO fjcg02 Conexión con bases de datos 2 23-01-2004 14:03:24


La franja horaria es GMT +2. Ahora son las 19:18:08.


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