FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Entender lo que pasa con mis datos
Hola a todos
Estoy trabajando con deplhi 6,firebird 1.5.3 , componentes Fib , estoy trabajando en cache pero hoy he tenido un problema inmenso los datos se me han grabado en 2 tablas y no en las otras se supone que la transaccion debe grabar todo o no grabar nada que pudo haber pasado De antemano Gracias Si alguien esta interesado en revisar el codigo puedo enviarselo estoy dispuesto a pagar si es posible pero eso errores no pueden darse en un aplicativo de Punto de venta
__________________
IVAND |
#2
|
||||
|
||||
Si insertas datos en una tabla... no pueden acabar insertados en otra
Y además es que das pocas pistas para poder ayudarte. |
#3
|
||||
|
||||
Cita:
Hasta Luego -
__________________
No todo es como parece ser... Última edición por lucasarts_18 fecha: 03-02-2006 a las 14:26:58. |
#4
|
|||
|
|||
Gracias amigos por su interes
Les comento y envio el codigo
Este es el codigo como uds ven esta con commit y rollback La funcion PuedoCerrarTRansaccion la tome de un ejemplo de Ain Marteens si se pueden dar cuenta existen 2 commit el primero envuelve a las tablas que indicaba pero ademas al detalle de la factura que fue la que no grabo y forma_pago que grabo solo una parte , cada objeto esta en cacheUpdate=True
__________________
IVAND |
#5
|
||||
|
||||
No he tenido timpo todavía de examinar a fondo el código, aunque a simple vista he detectado un pequeñin "error":
Código:
// Localizamos los pagos y lo actualizamos if DataModule2.Pt_commitR.Active then <------ falta código o sobra? else DataModule2.Pt_commitR.Active := True; <------ siempre se ejecuta try begin <------ a quién pertenece realmente? if monto_credito.Value > 0 then begin credito.Insert; credito.FieldByName('key_cliente').AsInteger := cliente.fieldbyname('key_cliente').AsInteger; credito.FieldByName('Emision').AsDateTime := DataModule2.FechaHOY.Value; credito.FieldByName('vence').AsDateTime := DataModule2.FechaHOY.Value + cliente.fieldbyname('plazo_credito').Value; credito.FieldByName('monto').AsCurrency := monto_credito.Value; credito.FieldByName('abono').AsCurrency := 0; credito.FieldByName('tp_cxc').AsString := 'F'; credito.FieldByName('letra').AsInteger := 1; credito.FieldByName('key_relacion').AsInteger := cabeza.fieldByname('Key_cab_fac').AsInteger; credito.Post; end; // Barremos e insertamos en formpago |
#6
|
|||
|
|||
Veras si no coloco esa instruccion la transaccion esta desactivada por eso pregunto so esta activa caso contrario la activo y eso de aquien pertenece no lo entiendo , te agradeceria me ayudaras a entender
Gracias
__________________
IVAND |
#7
|
||||
|
||||
Hola:
Creo que deberías modularizar mas tu código, el típico divide y vencerás y la verdad creo que te ayudará mucho para no tener estos problemas, mientras mas pequeñas sean tus piezas de software mas fácil es encontrar un error, viendo tú código pienso y creo que puedes optimizarlo mas en este sentido. ¿Has intentado debugear tu aplicación para ver si realmente hace el rollback..? Hasta Luego -
__________________
No todo es como parece ser... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas al conectar una tabla ADO a una base de datos de Access que posee contraseñ | Roger_Fernandez | Conexión con bases de datos | 5 | 28-02-2005 16:46:29 |
leer de base de datos access en ftp | agustincs | Tablas planas | 2 | 23-08-2004 22:25:00 |
Datos incosistentes ... | ACK | Firebird e Interbase | 1 | 13-08-2004 18:48:08 |
Datos en RAM | Esau | OOP | 2 | 10-11-2003 16:58:44 |
¿15 MB para una sola base de datos? | M@rcos | Conexión con bases de datos | 2 | 20-06-2003 15:49:26 |
|