FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problema al grabar un Master/Detail el detalle no se graba...
Hola amigos, despues de mucho tiempo de no programar nada en delphi, vulevo a uds para hacer un consulta que me tiene molesto... espero tengan respuesta a este problema!
Tengo un servidor linux, con firebird 2.1 instalado... dos usuarios con windows XP y 2000 y el sistema desarrollado en D6 con componentes zeos que se conectan al Firebird del servidor linux. Hasta ahora todo perfecto, cuando el sistema comienza a funcionar, todo fue de 10 puntos, pero despues de un tiempo, cuando ya habia casi 40000 facturas de venta cargadas, comenzaron los problemas, resulta que cuando los operadores intentan grabar una nueva factura, la misma no se graba, pero el sistema no emite ningun error, no se graba ni el Maestro ni el detalle. Se tiene que cerrar la aplicacion para que vuelva a funcionar. El proceso de grabacion se hace mediante un starttransaction y se finaliza con un commite. Realmente necesito ayuda, no se que puede estar pasando, muchas gracias desde ya! Saludos! Ricardo.
__________________
La amistad es la union de dos almas para formar una sola. |
#2
|
||||
|
||||
Hola, amigo, es bien difícil ayudarte con tan pocos datos, pon por aquí algo de código para que podamos evaluar.
|
#3
|
||||
|
||||
A mi la única vez que me ha pasado algo parecido, es decir que no grababa nada ni daba error fué porque a un IbDataset le puse sin darme cuenta la propiedad CacheUpdates a True.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
|||
|
|||
Aqui va el codigo
Hola Casimiro, Marcos, muchas gracias por su respuesta. Aqui paso a poner el codigo que hace delphi para hacer el grabado en la base, realmente todo se hace por procedimiento almacenado, asique pongo las dos cosas...
Ahora bien, los procedimientos almacenados que realizan la grabacion, son: Grabar_Factura;
y Grabar_Detalle_Factura;
Con respecto a lo que me dice Marcos la propiedad CachedUpdates del TZStoreProc esta en false... Muchas gracias por la ayuda, hasta luego! Saludos!! Ricardo
__________________
La amistad es la union de dos almas para formar una sola. |
#5
|
||||
|
||||
Y cuando abres el programa, la primera vez ¿sí funciona?
|
#6
|
|||
|
|||
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. |
#7
|
||||
|
||||
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?.
|
#8
|
|||
|
|||
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. |
#9
|
||||
|
||||
Cita:
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í. |
#10
|
||||
|
||||
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; Saludos. Última edición por guillotmarc fecha: 25-01-2010 a las 14:03:45. |
#11
|
|||
|
|||
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. |
|
|
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 |
|