Visual Basic - ERROR en SQL pero NO en VB

Life is soft - evento anual de software empresarial
 
Vista:

ERROR en SQL pero NO en VB

Publicado por Jorge Mino (14 intervenciones) el 08/10/2005 17:00:30
Hola necesito que me ayuden

cuando ejecuto en un procedimiento almacenado en SQL me sale este error

"Servidor: mensaje 515, nivel 16, estado 2, procedimiento pa_RegInseminacion, línea 57
No se puede insertar el valor NULL en la columna 'CodVerraco', tabla 'ElMotupano.dbo.Inseminacion'. La columna no admite valores NULL. INSERT falla.
Se terminó la instrucción."

Hasta todo bien.......

Pero es la aplicacion en VB que ejecuta dicho procedimiento almacenado EXITOSAMENTE... deberia controlar dicho ERROR, lo pasa de largo...

"ALGUIEN HA TENIDO ESE PROBLEMA, QUE SOLUCION ME DARIA"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ERROR en SQL pero NO en VB

Publicado por Cecilia Colalongo (3116 intervenciones) el 08/10/2005 18:42:58
Depende como estés llamando al procedimiento (si con ADO, RDO, SQLDMO) y si tienes algún On Error en alguna parte del código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pues..... AYUDENME

Publicado por Jorge Mino (1 intervención) el 08/10/2005 21:11:33
PUES ES ADO... y si controlo los errores

On Error GoTo EnviarError

Set cm.ActiveConnection = cn
cm.CommandType = adCmdStoredProc
cm.CommandText = "ProcedimentoAlmacenado..... bla bla bla"
cm.Execute <------
Exit Sub
EnviarError:
Err.Raise Err.Number, "", Err.Description

SI EJECUTO "ProcedimentoAlmacenado..... bla bla bla" EN SQL me arroja error

PERO EN VISUAL BASIC... execute lo hace EXITOSAMENTE... deberia salirme error

AYUDENME
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Pues..... AYUDENME

Publicado por Plutarco (27 intervenciones) el 11/10/2005 00:21:07
Acuerdate que la instrucción Execute, te regresa también el número de registros procesados, y aunque visual no pueda capturar el error de Sql tu debes en tu store procedure decirle que te cache el error y hacer que tu store procedure regrese un número de error así Visual va a tomar dicho número como registros procesados, es decir, si todo sale bien tal vez puedas regresar un positivo y si algo sale mal regresas un negativo.

Otra solución es que en tu store procedure uses las instrucciónes BEGIN TRANSACTION, COMMIT y ROLLBACK, esto hace que todas las instrucciones anteriores al error se detengan y no se ejecuten las posteriores, dicho error si lo puede capturar Visual en tu rutina de error que generaste, ya que Sql ejecuta una a una las instrucciones que le des y si no tienes una instrucción BEGIN TRANSACTION entonces simplemente esa intrucción no la ejectuta y las demás si, es por eso que visual no te cacha esos errores ya que la ejecución en Sql continúa.

Espero que esto te haya sido de ayuda. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar