Hi, we have an issue executing a pipeline:
Our PB19 application is crashing on runtime when we execute a pipelie and the value of a column is greater than column size.
We have correct it changing the column size on pipeline.
But, ¿is there any way to catch the error, to avoid the crash in other not controlated cases?
We have added the try..catch exception, but this not catches the error.
Our Code:
TRY
ll_error_pipe = pline.Start(atr_origen, atr_destino, lds_error, [parms ...] )
CATCH (runtimeerror err)
MessageBox("Atención", "Se produjo un error en la actualización ... " + err.GetMessage())
return -1
END TRY
if ll_error_pipe <> 1 then
CHOOSE CASE error_pipe
CASE -1
ls_error = "Fallo Abriendo Pipe"
CASE -2
ls_error = "Demasiadas columnas"
CASE -3
ls_error = "Ya existe la tabla"
CASE -4
ls_error = "No existe la tabla"
CASE -5
ls_error = "Falta la conexion"
CASE -6
ls_error = "Argumentos incorrectos"
CASE -7
ls_error = "Columna incorrecta"
CASE -8
ls_error = "Fatal Error SQL en origen"
CASE -9
ls_error = "Fatal Error SQL en destino"
CASE -10
ls_error = "Número máximo de errores excedido"
CASE -12
ls_error = "Sintaxis de tabla incorrecta"
CASE -13
ls_error = "Se necesita campo clave pero no aportado"
CASE -15
ls_error = "Pipe todavia en progreso"
CASE -16
ls_error = "Error en base de datos origen"
CASE -17
ls_error = "Error en base de datos destino"
CASE -18
ls_error = "La base de datos destino es sólo de lectura"
CASE ELSE
ls_error = "Error Nº:"+String(error_pipe)
END CHOOSE
end if
if (pline.RowsInError>0 OR ll_error_pipe <>1) then
ls_error = "~r~nError en volcado de datos"
FOR I=1 TO DS_ERROR.ROWCOUNT()
ls_error += lds_error.getitemstring(i,1) + "~r~n"
NEXT
end if
Regards.