![]() |
problema Borrar varias filas de dbgrid
Hola amigos....
buscando en el foro encontre una solucion para recorrer la filas seleccionadas de un tmsdbgrid, sin embargo me genera errores en caso de eliminar dichas filas....
si marco filas intercaladas me elimina la siguiente a la marcada, luego luego elimina cosas que no quiero y deja de eliminar otras que si quiero creo que en el delete cuando elimino un registro el cursos salta al siguiente y pues zasss tambien lo borra, en todo caso les pregunto a ver que me dicen, antes de aplicar una solucion fea(algo como recorrer guardando los indices en un array para luego recorrer el array y eliminar las filas que coincidan con el indice del array) Gracias por su ayuda.... |
|
Cita:
Bien para insertar un registro use
luego guardo, pero el problema es cuando elimino una fila q seleccione en el dbgrid solo puse: table1.delete y me da error (master has detail records cannot delete or modify), mi intencion es hacerlo de esa manera , quisiera saber si ahi alguna solucion, o que tendria q modificar en el codigo o agregar , gracias |
Hola gonza.
Primero un consejo: Te conviene agregar un nuevo hilo para tu consulta. Vas a tener más oportunidades de obtener una respuesta satisfactoria. (Ya que más gente va a leer el post y se vá a tratar tu tema en particular). El error que te arroja es lógico y te dice que no puede borrar el registro actual puesto que hay otros registros que dependen de él. Hay bases de datos que permiten el borrado en cascada y otras que nó, debiéndolo hacer vos por código. Por lo que para ayudarte a solucionarlo, deberías especificar con que base de datos estás trabajando. Saludos. :) |
como eliminar fila de dbgrid
bueno las tablas las hice en paradox
|
Casi siempre surge la confusión con el uso de los grids, solo hay que recordar que cualquier grid no es mas que la representación de lo que contiene una tabla o query, es mejor hacer cualquier cambio directamente en la tabla y el grid en automático responde.
|
Cita:
table2.active:=false; table1.delete; table2.active:=true; probe con un navigator pero tambien me da el mismo error |
Hola
Un masterdetail lo que hace es ligar dos tablas (o mas) esto para hacer normalmente un enlace de dos dbfrid. Cuando se llama a un master la relacion es filtrada por el campo requerido, la palabra magica, FILTRADA. Ninguna tabla aceptara borrar campos filtrados por un Table, solamente por sql. Saludos PD: Independientemente de la BD. |
Si definiste bien tus tablas, (no mencionas que motor usas) debiste haber colocado las dependencias entre la tabla maestra y la de detalle de manera que cuando borres un registro de la maestra, en automático se borren los detalles (en algunos motores se usa CASCADE).
Lo que dice caral es correcto, por eso no puedes borrar a partir de un grid, tienes que hacerlo directamente en la tabla. Por otro lado el mensaje de error mismo te da la respuesta: "la tabla maestra tiene registros de detalle, no se puede borrar"...solución: primero borra todo detalle del registro maestro y luego el registro maestro. Ojo: tienes que cerrar las 2 tablas para hacer la operación. |
Cita:
Paradox no implementa actualizaciones en cascada. En este enlace ya han respondido como hacerlo. Saludos. |
| La franja horaria es GMT +2. Ahora son las 07:00:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi