FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problema actualización registros relacionados
Hola, desde hace tiempo estoy intentando realizar una aplicación de facturación, ya solventé varios problemillas que me fueron surgiendo pero ahora estoy algo estancado en lo siguiente:
tengo dos tablas relacionadas, pedidos y albaranes: PEDIDOS (ID, FECHA, IDCLIENTE) ALBARANES(ID, IDPEDIDO, FECHA) relacion ALBARANES.IDPEDIDO = PEDIDOS.ID El problema es que un pedido se puede servir en varios albaranes, según va llegando el material solicitado. En el mantenimiento de documentos maestro-detalle como albaranes, hasta ahora lo que hice era sencillo, volcar sobre un StringGrid la información de las líneas de albarán, editarlas y al pulsar "Aceptar", realizo el borrado de todas las líneas de la albarán y grabar el contenido del StringGrid en la tabla. Esto no me sirve con la tabla pedidos, ya que si he servido algún albarán aparecerá un error de integridad. Hace días que estoy dandole vueltas al asunto y no acabo de ver una solución sencilla que me permita mantener una transacción abierta el mínimo de tiempo posible. Alguien con más experiencia podría orientarme un poquito. Gracias |
#2
|
||||
|
||||
Corrigeme si me equivoco, pero, ¿estas diciendo que para actualizar tus tablas primero borras los registros y despues insertas los datos correctos?, creo que esto esta muy mal y ya estas viendo las consecuencias.
Yo te sugiero que utilices Update al menos en la tabla de pedidos para que no te de ese error cuando modifiques la info, otro consejo es que utlices los controles para datos (DBGrid, DBEdit, etc...) y dataset's para actualizar tus tablas. Saludos!!! |
#3
|
||||
|
||||
Gracias por tu respuesta boreg.
En una tabla "normal", como la de clientes, utilizo el Update tal y como me sugieres. Sinembargo, en más de un sitio leí que las transacciones deben quedar abiertas el mínimo tiempo posible, por tanto, quizás equivocadamente, cree el programa donde edito el Albarán (cabecera y líneas de albarán) sin conexión a la BD, y al pulsar en "Grabar" vuelco toda la información en la BD, en la cabecera realizo un Update y con las líneas las borro y las inserto de nuevo, un solo COMMIT para grabar cabecera y líneas en una transacción (es el concepto que creí interpretar en algún texto sobre transacciones). Posiblemente no sea el método adecuado. De la manera que me dices, entiendo que debería realizar un COMMIT con cada Update para no matener la transacción abierta mientras se editan otras líneas. Sería éste el método correcto que me sugieres boreg?? |
#4
|
||||
|
||||
Pues te diré que no soy en experto en el tema de las transacciones, pero creo que no es necesario que tengas abierta una transaccion para hacer update en una tabla (mientras no uses dataset's),
Cita:
Espero haberme explicado bien, de lo contrario con gusto aclararé tus dudas, claro que si alguien mas puede dar su punto de vista sería excelente. Saludos |
#5
|
||||
|
||||
Cita:
Cita:
Posiblemente mi método es el de complicarme la vida in extremis, fué la solución para una tabla maestro-detalle sin dependencias, al incluir dependencias el tema se me ha complicado, por lo que deduzco que el planteamiento está mal pero, aparte de utilizar DBGrid + DataSet, no se me ocurren otras soluciones, y por ello la petición de ayuda. Gracias por tu aporte. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mejorar busqueda de registros y actualizacion | JuanchoArg | Conexión con bases de datos | 2 | 10-05-2006 03:06:48 |
Borrar Registros relacionados | senpiterno | Conexión con bases de datos | 3 | 04-11-2004 10:31:33 |
Actualizacion de Registros | Nelson Alberto | Conexión con bases de datos | 0 | 07-10-2004 19:11:15 |
Actualizacion automatica de registros | Eklypsex | Firebird e Interbase | 2 | 19-05-2004 13:05:49 |
Falla Actualizacion de Registros | vic_ia | Conexión con bases de datos | 0 | 14-01-2004 02:44:52 |
|