La Web del Programador: Comunidad de Programadores
 
    Pregunta:  18456 - ADODB.CONNECTION NO CAUSA ERROR AL VIOLAR CHECK CONSTRAINT
Autor:  Melian Mejias
Usando la tecnología de acceso a datos ADO 2.5, SO Windows NT Workstation 4.0, Visual Basic 6.0 Service Park 5.0 y SyBase como base de datos.

En la base datos tengo definido un Check constraint al nivel de tabla (comparacion de dos columnas fechas en la tabla)
Cuando ejecuto una sentencia SQL Insert o Update a la tabla usando el Método Execute del objeto Connection en VB, este No genera Error al incumplir la restricción definida en el Check, más bien ejecuta con éxito la operacion insert o update.
Pero sí ejecuto el script insert o update en el SQL Advantage, aquí sí, se genera el error 548, el cual tiene como descripción lo siguiente:
Check constraint violation occurred, dbname = 'prueba', table name = 'siporden', constraint name = 'ckc_siporden'.

Me gustaría saber que se puede hacer para que en la aplicación VB el objeto connection genere ese error.

Espero algun consejo. Gracias.

  Respuesta:  Melian Mejias
Lo que tuve que hacer fue cambiar el constraint.

Este fue mi primer constraints definido:
1- CHECK ((orfechainforme = null) or (orfecharecepcion <= orfechainforme))

Realizando más pruebas comprobé que cualquier comparación con null, el objeto connection no genera error en VB. Entonces así que modifique el constraint al siguiente y con esto obtuve lo deseado (generar error a nivel de aplicación):
2- CHECK (orfecharecepcion <= orfechainforme)

No sé porqué a nivel de aplicación VB no se genera error y a nivel de SQL Advantage sí usando el primer constraint que definí?
Tal vez me puedan brindar alguna sugerencia al respecto.
Muchas gracias.
Agradezco su tiempo.