Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   duda grid editable: lineas vacías (https://www.clubdelphi.com/foros/showthread.php?t=42977)

HomeCinema 27-04-2007 11:26:05

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

Troffed 27-04-2007 19:05:06

En el BeforePost haz un Abort si no quieres el registro.

HomeCinema 02-05-2007 12:42:00

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 ;)

Lepe 02-05-2007 14:05:29

En dicho evento, puedes mirar el valor de clave primaria, y si es null, Cancelar en lugar de abortar.

Código Delphi [-]
  if tabla1CAmpoprimario.isnull then
    tabla1.Cancel;

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

HomeCinema 02-05-2007 14:37:12

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?

Lepe 02-05-2007 16:47:22

¿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

roman 02-05-2007 20:04:41

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:46:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi