Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me refería a todo el código implicado en la transacción
Ahí veo que haces commit, pero ¿cuándo inicias la transacción en esos casos?
¿Cómo tienes definido el TIBTransaction?
Responder Con Cita
  #2  
Antiguo 23-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Vale, te había entendido mal. Lo cierto es que, y me acabo de dar cuenta al leer este mensaje tuyo, que la transacción la tengo definida en el formulario principal... ¡pero luego no hago nada con ella! Quiero decir: ni la abro, ni la verifico, ni nada de nada, ¡y sin embargo funciona bien! Los registros se graban, se actualizan, se borran. No lo entiendo.


En la transacción asociada al query que hace el INSERT sólo tengo puesto:
Cita:
AutoStopAction = falseDefaultAction = TACommit
Name = tGesInt
El resto de propiedades están como vienen por defecto en el objeto. Es evidente que algo estoy haciendo mal.
Responder Con Cita
  #3  
Antiguo 23-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ahí veo que haces commit, pero ¿cuándo inicias la transacción en esos casos?
¡Miento! Como me dejaste con la mosca detrás de la oreja he estado repasando el código. La transacción la activo cuando conecto la base de datos:
Código PHP:
GesInt->DatabaseName AnsiString(cTablas) + "GesInt.fdb";
GesInt->Params->Clear();
GesInt->Params->Add("user_name=" NombreUser);
GesInt->Params->Add("password=" ClaveUser);
GesInt->Params->Add("lc_ctype=ISO8859_1");
GesInt->SQLDialect            3;
GesInt->Connected             true;
Auxiliar->Transaction->Active true;
Query->Transaction->Active    true
Todas las varaibels que hay por ahí danzando (cTablas, NombreUser y ClaveUser) están bien definidas y con valores correctos. Ese es el úncio sitio donde modifico el esatdo de las transacciones.
Responder Con Cita
  #4  
Antiguo 23-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Elimina esos commit que haces después de los execsql
Al componente TIBTransaction dale estos valores:
Código:
write
nowait
rec_version
read_committed
Luego, en el evento del query que lo necesites, haces un commit explícito:
Código Delphi [-]
procedure TDMmain.QRcentrosCosteAfterPost(DataSet: TDataSet);
begin
  DataSet.Transaction.CommitRetaining;
end;
Y por supuesto, no olvides hacer un commit (no un commitretaining) por ejemplo cuando vuelves a la pantalla principal. Ya depende de cómo tengas estructurado tu programa.
Responder Con Cita
  #5  
Antiguo 23-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Al componente TIBTransaction dale estos valores:
Código:
write
nowait
rec_version
 read_committed
¿Dónde pongo esos valores? ¿En los parámetros? ¿Cómo? Porque en la ayuda no lo he visto. El resto del código que me sugieres no se me había ocurrido, la verdad.
Responder Con Cita
  #6  
Antiguo 23-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por ejemplo, doble click en el componente.
O botón derecho sobre el mismo -> editar parámetros de transacciones.
Responder Con Cita
  #7  
Antiguo 23-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Imagino que te refieres a esto:

Los valores de la izquierda, ¿los dejo tal cual, sin seleccionar ninguno?
Responder Con Cita
  #8  
Antiguo 23-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ese diálogo es.
No hace falta que tú lo teclees. Si marcas "Read Commited" verás que se escriben esas opciones.
Responder Con Cita
Respuesta



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
Commit no se ejecuta hasta que cierro la aplicación... MAXIUM Firebird e Interbase 3 24-02-2018 15:44:20
con breakpoint ejecuta y sin el no lo ejecuta. pacuuy Varios 1 16-12-2007 13:41:43
Commit - CommitRetaining Luzma Firebird e Interbase 3 27-06-2006 01:58:58
Commit micayael PHP 4 21-09-2005 19:34:50
Commit Loviedo Firebird e Interbase 7 29-07-2005 14:36:10


La franja horaria es GMT +2. Ahora son las 17:32:05.


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