PDA

Ver la Versión Completa : Maestro-detalle Paradox


URBANO
17-02-2005, 09:36:01
Hola foro, he creado dos tablas en paradox y las he relacionado (tabla articulos y tablas detarticulos).
Mi idea al crear la relación era que cuando se cambiara el clave primaria de un registro en la tabla articulos de forma automatica (por que esta definida la relacion) se cambiara en todos los registros de la tabla detarticulos donde se encontrara ese valor.
Esto es la teoria, pero no ocurre. Simplemente me cambia el valor en articulos y me da un error al intentar modificar en detarticulos. ¿por que?

Gracias y saludos.

marcoszorrilla
17-02-2005, 11:43:13
Porque no tiene la propeidad actualizar en cascada, por lo tanto lo tienes que implementar por código, por ejemplo con un simple SQL.

Un Saludo.

URBANO
18-02-2005, 08:43:08
Si tengo puesta la propiedad de actualizar en cascada. Te explico, la base de datos en en paradox y la he realizado con el Database Desktop. Al crear la relacion hay una opcion de actualizar en cascada y yo la tengo señalada.
¿Puede ser por otro motivo?

Gracias por tu respuesta.

Lepe
18-02-2005, 10:46:16
Lo que Marcos dice es que: Paradox no tiene implementada la actualización en cascada, aunque tenga esa casilla en el database desktop !!! por tanto la tienes que implementar tú a mano.

Saludos

URBANO
18-02-2005, 17:09:44
Pues vaya sorpresa. Pues nada, lo hare a mano (con sentencias sql).
Gracias por vuestras respuestas.

Saludos.

andres1569
18-02-2005, 18:02:13
Hola:

Acabo de probarlo (ya lo había experimentado en una ocasión pero por si las moscas) y veo que Paradox Sí tiene la actualización en cascada, aunque es posible que haya que seguir ciertas pautas.

En primer lugar, las tablas que he manejado eran de Paradox 7.0, no sé si en versiones anteriores esta característica no funciona. Luego creo que es necesario que el campo que hace de nexo (la clave principal en Articulos y foránea en Detalles) esté declarada en el primer lugar dentro de la tabla detalle, es decir que sea el primer campo. Al definir la Integridad Referencial, Paradox ya crea los índices pertinentes.

Lo he probado, tanto desde el Database Desktop como desde Delphi y al cambiar la clave principal en Artículos, dicho cambio se propaga en la de Detalles (en Delphi hay que hacer un Refresh para verlo, claro).

Al menos en las circunstancias que he descrito, sí funciona, otra cosa es que personalmente a mí la Integridad Referencial en Paradox me ha dado más quebraderos de cabeza que satisfacciones, sobre todo a la hora de reparar tablas y encontrarme con dependencias farragosas.

Saludos

Lepe
20-02-2005, 11:45:54
Cuando ví este hilo, me abstuve de responder, ya que recordaba vagamente si funcionaba o no.

Creo que el tema era:
- Actualización en cascada si funciona.
- Borrado en cascada no.

De todas formas coincido con andrés; en caso de fallos, la integridad referencial en paradox te vuelve loco para intentar salvar los datos, así como los autoincrementales.

Saludos

marcoszorrilla
20-02-2005, 19:52:46
He estado un par de días en Francia, bueno pues como dice Andrés y Lepe en la versión 7 si tiene la casilla para activarla y crea los índices automáticamente, lo cierto es que yo recuerdo haberla usado una vez y a la vista de los resultados, tuve que reconstruir entera una tabla..., lo que hago es implementar la integridad de forma manual, no es más que un simple Update en SQL.

Un Saludo.