Ver Mensaje Individual
  #4  
Antiguo 04-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 22
andres1569 Va por buen camino
Hola:

Te remito a mi mensaje anterior. Sí que entendí la pregunta, que estaba bastante clara. Lo que ocurre es que no se suele controlar ese cambio de columna, es decir, a nivel del DBGrid, sino que se controla a nivel del DataSet; más aún, en la misma definición de la Base de Datos debes marcar qué campos son requeridos y cuáles no. Si son parte de la clave primaria, como parece, lo lógico es que lo sean.

Si haces eso, luego al ligar desde Delphi un TTable o un TQuery a dicha tabla de la BD, el campo en cuestión es marcado como Required, y el mismo Delphi lanza una excepción si tratas de grabar sin asignarle un valor. Tú no tienes que controlar nada más.

El código que te puse controla que mientras insertas un registro desde un DBGrid, al llegar a la celda del campo requerido no pueda pasar a otro campo (otra celda) hasta que le asignes un valor, pero no evita que cambies de registro (al de arriba o a uno nuevo yendo hacia abajo). Esa comprobación, como te digo, debes realizarla a nivel del DataSet.

Espero haberme explicado. Sigue los pasos que te indico al principio (marcar Required al campo en la Base de Datos) y ya nos dirás.

PD: Si cambias ahora en la BD ese campo a requerido, puesto que en Delphi ya tienes colocado el TTable enlazado a dicha tabla, acuérdate de ir al campo en cuestión y asegúrate que la propiedad Required está a TRUE. Delphi no sabe que has hecho ese cambio.
__________________
Guía de Estilo

Última edición por andres1569 fecha: 04-08-2003 a las 20:34:50.
Responder Con Cita