FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Eliminar registros en tablas enlazadas
Buenos días a todos:
Me gustaría que me ayudarais en una duda, Tengo dos tablas paradox :una con información sobre edificios y otre de pisos(de esos edificios).Están enlazadas por un campo llamado edificio, que representa al nombre.Entonces cuando elimino un edificio de la tabla edificios, se deberían eliminar todos los pisos de la tabla pisos cuyo campo edificio coincida con el edificio eliminado.¿No se debería hacer automáticamente?Y si no, he pensado que habría que utilizar un filtro,verdad? Espero que me podáis ayudar. Muchísimas gracias. |
#2
|
|||
|
|||
Paradox no tiene eliminación en cascada, por lo que has de controlar el evento BeforeDelete del TTable de edificios y, allí, borrar primero los pisos
o bien con un simple bucle (suponiendo que están en relación master/detail)
|
#3
|
|||
|
|||
Perdona cadetill,
¿Qué quieres decir con lo de código SQL?¿Lo podemos utilizar aunque nuestras tablas sean paradox? Gracias por tu ayuda. |
#4
|
||||
|
||||
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
Gracias,pero es que ahora nos surge una duda :¿Cómo podemos establecer la relación master/detail?Es que ya tenemos las tablas hechas y para modificarlas con el form wizard nos obliga a que aparezca en un form y no queremos eso.
¿Cómo podríamos hacerlo? A ver si nos puedes echar una mano Besines |
#6
|
|||
|
|||
Establecer una relación master/detail es sencillo
1.- Selecciona la tabla detalle 2.- en su propiedad MasterSource pon el DataSource de la tabla master 3.- haz clic el botón que aparece en la propiedad MasterFields para idicar qué campos se une de una tabla con la otra Con esto ya tienes tu relación master/detail en marcha |
#7
|
|||
|
|||
Gracias cadetill.
pero tenemos un problema:al intentar poner en el mastersource de la tabla detalle el datasource de la tabla que queremos que sea master, no nos aparece nada que seleccionar en la combobox mastersource. Hemos añadido la unidad de la tabla master, para poder utilizar su datasource. Perdón por las molestias |
#8
|
|||
|
|||
Cita:
Por otro lado, el TTable maestro tiene Datasource? está en la misma Unit? Si es así, debería de salirte. No onstante, puedes escribirlo tu misma poniendo nombre de fromulario + nombre de datasource |
#9
|
|||
|
|||
Muchas gracias, Ya hemos arreglado lode master/detail, pero con el código de antes para eliminar los registros de la tabla detalle, no nos elimina los del edificio que seleccionamos sino todos los existentes en la tabla de pisos.
Hemos usado lo que tu nos dijiste: Código:
while not TPisos.Eof do TPisos.Delete; |
#10
|
||||
|
||||
Si borras todo quiere decir que no tienes establecida correctamente la relación maestro-detalle. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#11
|
|||
|
|||
Creo que si la tenemos bien, al menos hemos puesto todo lo que cadetill nos dijo lo de poner el el MasterSource de la tabla detalle el DataSource de la tabla master y el campo por el que se enlazan en el MasterField.
una pregunta: Cuando hacemos 2 DBLookUpComboBox en el ListSource ponemos la tabla y en el campo el ListField del primero el campo clave que es el que enlaza las dos tablas, pero también hay una propiedad que se llama KeyField a la cual también le damos el valor del campo clave. Ahora, y aquí es donde tenemos una duda, en el DBLookUpComboBox 2 hacemos lo mismo, poner el ListSource y el ListField correspondientes, pero el KeyField ponemos el ListField también, pero no es clave, simplemente es un campo más de búsqueda ¿deberíamos rellenar ese KeyField? y ¿si lo tenemos que rellenar con que campo, el realmente clave o el que corresponde a ese segundo DBLookUpComboBox? Espero haberme explicado. Muchas gracias y perdón por robaros tiempo. |
#12
|
||||
|
||||
Cita:
Si no tenes mucha habilidad con el Ingles, podes auxiliarte de algun diccionario o traductor. Incluso tenes en línea varios, por ejemplo el de google (que te permite traducir cualquier trozo de texto): http://www.google.com/language_tools?hl=es Veo que no han seguido mi recomendación de leer un libro... Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#13
|
||||
|
||||
ah... olvide mencionarlo. A muchos nos pasa que la ayuda, de un tema desconocido, nos deja con muchas dudas... entonces yo al menos, habitualmente comienzo a hacer pruebas para terminar de entender el comportamiento de las cosas. Cuando después de esto aún tengo dudas, entonces acudo a mis buenos amigos del club por ayuda.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|