Como ya he dicho estoy aprendiendo SQL Server (usando Visual Foxpro como
interfaz) especificamente para el desarrollo de un sistema nuevo para
entorno Windows. Hice hace poco una pregunta relacionada pero aquella era
menos especifica.
Resulta que siguiendo normas leidas en los BOL's estoy tratando de indicar
la mayor cantidad de validaciones en la propia base de datos, como
restricciones por ejemplo. Es decir las reglas del negocio en la propia
base de datos.
Como es normal al registrar datos en un form, las validaciones se verifican
al momento de salvar los datos a sql server. El asunto es que en una
determinada pantalla de registro que contiene muchos campos divididos en
varios bloques (pageframes) el cliente me dice que prefiere que al usuario
se le vaya informando sobre datos incorrectos a medida que vaya avanzando de
campo a campo(porque como dije son muchos) y no esperar a que le de a Salvar
pues asi es mas lento el proceso. Ademas aunque no fuese asi, cuando el
insert produce un error de validacion se requiere que en la aplicacion se
posicione en el campo correspondiente a la primera columna con un valor
erroneo.
El asunto es que veo que eso implicaria incluir las mismas validaciones que
ya tengo definidas en la base de datos (sea en restricciones o store
procedures) tendria que repetirlas a nivel de la capa de la interfaz, lo
cual como que no me parece adecuado pues seria como duplicacion de codigo y
no estarian separadas las capas.
Lo que quiero es:
Hay alguna forma de indicar restricciones para una columna especifica de
una tabla de SQL Server de modo que yo pueda detectar desde una aplicacion
cual columna fue que produjo el error y poder posicionarme en la aplicacion
en esta columna ?
De haberlo, hay forma de yo extraer el codigo de validacion desde el
servidor para poder utilizarlo directamente en la aplicacion en la copia
local de datos en edicion, sin tener que repetir esta logica a nivel de la
interfaz ?
Aunque me resultaria mas sencillo que me contaran sus experiencias de como
se suelen manejar estas cosas pues me tienen un poco confundido. Lo que
necesito es alguna idea practica.
Muchas gracias por su valiosa ayuda
Leer las respuestas