Hola.
Este es un SP simplísimo, para ejemplificar un problema planteado por un
usuario en el grupo de VB y para el que aun no encuentro solucion:
ALTER PROCEDURE DBO.AddRGemma
(@Grp NVARCHAR(3))
AS
INSERT INTO Gemma (Grupo, Importe1, Importe2) VALUES (@Grp, 0, 0)
IF @@ERROR <> 0
BEGIN
RAISERROR( 'ERROR EN AddRGemma', 16, 10)
END
si el SP se corre desde el QueryAnalizer pasando en @Grp un valor ya
registrado en Grupo (es la PK), se muestran tres mensajes de error: dos
generados por el servidor, seguidos por el que se levanta desde el SP.
Pero cuando la aplicacion se corre desde VB6, la coleccion Errors de la
conexion se llena solo con los dos primeros errores.
Alguien me sugirió que reemplazara RAISERROR por PRINT, pero el resultado es
el mismo.
Se me ocurrió incluir un PRINT antes del INSERT INTO, y la situacion es
muchísimo peor: no se produce ningún error en la aplicacion cliente. Si uno
examina la coleccion Errors de la conexión, solo hay una entrada cuya
descripcion es el texto enviado en Print. La instruccion, por supuesto, no
se ejecuta, pero no hay ninguna advertencia.
Sin duda, el problema no esta en SQL Server, sino en la interfaz (el
proveedor OLEDB para SQL Server, instalado con ADO 2.8). De cualquier
manera, no creo que se pierda nada preguntando aquí.
Salud!
Leer las respuestas