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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Hola Casimiro, gracias por tu rapida respuesta, Si el sistema funciona siempre... solo hay pocas veces que pasa esto...

Saludos!!!

Ricardo
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #2  
Antiguo 25-01-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Veo que inicias con un 'Base.StartTransaction', ¿los componentes zeos tienen algún método para finalizar la transacción, 'Base.EndTransaction' o basta con hacer con el commit?.
Responder Con Cita
  #3  
Antiguo 25-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Hola Casimiro, nuevamente muchas gracias!!

Pues me has hecho dudar, y me he fijado si existe algun EndTransaction o algo parecido, pero no... solo eso...

Tambien estuve viendo el TransactionIsolationLevel y esta en TiReadCommitted

Pues realmente ya no se si ese valor esta bien o no...

En fin, muchas gracias!!

Saludos!

Ricardo
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #4  
Antiguo 25-01-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Cita:
Empezado por Ricardojosep Ver Mensaje
Pues me has hecho dudar, y me he fijado si existe algun EndTransaction o algo parecido, pero no... solo eso...

Tambien estuve viendo el TransactionIsolationLevel y esta en TiReadCommitted
No conozco las Zeos pero al hacer un Commit ya basta para asegurar que los datos sean guardados, no se necesita ninguna finalización posterior de la transacción (esta solo sería para liberar el componente de memoria, no para confirmar la transacción).

Respecto al nivel de aislamiento, el Read Commited es muy estándar y perfectamente válido para este caso. Aunque el nivel por defecto en Firebird es SnapShot (que muchos componentes no lo reconocen porqué es propio de Firebird) el problema no debería estar ahí.
Responder Con Cita
  #5  
Antiguo 25-01-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Con tu código los errores quedan ocultos, ya que no salta ningún mensaje al usuario, simplemente haces un Rollback y por tanto no se graban los datos (que es el problema que comentas, no se graban datos sin ninguna razón aparente).

Deberías hacer que cuando haya errores se muestren o al menos se informe al usuario de que sus datos no serán guardados.

Código:
exception
  Error := True;
  on E: Exception do ShowMesasage('Error: ' + E.Message);
end;
Por cierto, ¿ tienes triggers en esas tablas ?, los triggers pueden ser el motivo de que a veces no se inserten algunos registros. Si el trigger falla entonces no se graban los datos.

Saludos.

Última edición por guillotmarc fecha: 25-01-2010 a las 14:03:45.
Responder Con Cita
  #6  
Antiguo 25-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Hola guillotemarc, pues los errores se muestran, me olvide de poner eso el mensaje anterior... el error que se ve pasa como parametro y se muestra el error en otro procedimiento de delphi, y los operadores me dicen que el mensaje no aparece... El mensaje es del tipo ShowMessage('ERROR...') asique ellos tienen que hacer un click para cerrar el cuadro de dialogo para continuar..

Muchas gracias!!

Saludos!!

Ricardo
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #7  
Antiguo 25-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Hola nuevamente guillotemarc, me olvide de decirte que si tengo triggers en las tablas, graban los logs... pues como deberia hacer los logs si no los hago con los triggers, el sistema se pondria mas lento, o no?

Muchas gracias!!

Saludos!!!
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #8  
Antiguo 25-01-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Cita:
Empezado por Ricardojosep Ver Mensaje
Hola nuevamente guillotemarc, me olvide de decirte que si tengo triggers en las tablas, graban los logs... pues como deberia hacer los logs si no los hago con los triggers, el sistema se pondria mas lento, o no?
Hola, yo también hago los Logs con triggers.

No hay ningún problema en ello, pero como cualquier otra cosa pueden fallar. En principio el error ya te indicaría el trigger que falla y la razón, a mi me parece que tu problema es que tu código está ocultando los errores (ya sea en la base de datos o en tu programa).

Saludos.
Responder Con Cita
  #9  
Antiguo 26-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Gracias guillotemarc, ahora voy a poner los errores en pantalla para ver que puede estar pasando, cualquier cosa vuelvo con el hilo.

Muchas gracias a todos!!

Saludos!!
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #10  
Antiguo 25-01-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Cita:
Empezado por Ricardojosep Ver Mensaje
Hola guillotemarc, pues los errores se muestran, me olvide de poner eso el mensaje anterior... el error que se ve pasa como parametro y se muestra el error en otro procedimiento de delphi, y los operadores me dicen que el mensaje no aparece... El mensaje es del tipo ShowMessage('ERROR...') asique ellos tienen que hacer un click para cerrar el cuadro de dialogo para continuar..
Entonces tu código no es ese, sino que es más complejo. Ya que con ese código Delphi que nos has enseñado el programa se come los errores y ocurre lo que dices: no se muestra ningún mensaje ni se guardan los datos.

Será mejor que compruebes que realmente los errores se muestran (provoca uno adrede, por ejemplo con un error en el SQL de la consulta para guardar).

Saludos.

Última edición por guillotmarc fecha: 25-01-2010 a las 14:17:15.
Responder Con Cita
Respuesta


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
Problema con master-detail en Access cartmanrules Conexión con bases de datos 0 24-02-2009 19:01:41
Problema con Master/Detail en ReportBuilder agustibaldo Impresión 1 27-09-2007 20:03:30
Incrementar el id del detalle en master/detail... Arturo MySQL 2 07-07-2006 19:24:09
Problema con Edicion En Master-Detail Paradiso Conexión con bases de datos 0 26-01-2005 06:28:28
Problema con ¿master-detail? fortran Tablas planas 3 10-12-2003 09:17:48


La franja horaria es GMT +2. Ahora son las 05:16:22.


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