![]() |
duda grid editable: lineas vacías
Hola, me gustaría saber que puedo hacer para permitir que la flecha abajo me deje insertar un registro en un grid pero sin tener el problema de que si a continuación le doy a la flecha arriba me de el error de que no tiene clave ( lógico porque el nuevo registro insertado está vacio ) ¿Hay alguna forma de eliminar estos registros vacíos comodamente o algun procedimiento que se ejecute en algun evento para ello? gracias de antemano
|
En el BeforePost haz un Abort si no quieres el registro.
|
He hecho el abort en el evento pero se me queda clavado en ese registro, es decir, no me da error pero no me deja subir al de arriba. He probado a posicionarlos y sigue clavado. En mi grid tengo dos columnas donde introduzco valores y el resto son solo para mostrar.
¿Podrías poner brevemente el código que usas en este evento? Gracias ;) |
En dicho evento, puedes mirar el valor de clave primaria, y si es null, Cancelar en lugar de abortar.
Abort lanza una excepción silenciosa, por ese motivo se corta el flujo del programa, quedando el registro en modo edición pero sin guardar. Edito: Al intentar cambiar de registro, el Dataset realiza un Post de la tabla, por tanto, se vuelve a lanzar otra vez un Abort, y te quedas "clavado" en ese registro. Saludos |
Si hago un cancel me salta la excepción KEY VIOLATION. Una vez aceptado el dialogo que sale, el registros se observa que se borra con exito. He intentado capturar el error para que no lo muestre. ¿Cómo evitas que salga eso?
|
¿Qué Base de datos usas? o el sistema gestor de bases de datos.
Es muy raro que salte una excepción al cancelar, puede que estés usando otro evento que provoque un post. ¿qué clase de campo es la clave primaria? un autoincremento, un generador.... Saludos |
Quizá esté afectando algún otro evento. Porque yo hago la prueba como se describe orginalmente (flecha abajo, seguido de flecha arriba) y no pasa nada, simplemente se cancela la inserción sin necesidad de manejar ningún evento. Esto incluso teniendo llave primaria la tabla y campos requeridos.
// Saludos |
La franja horaria es GMT +2. Ahora son las 12:45:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi