Tanto en SQL como en C#, nunca me han gustado los parámetros de salida. Nunca pasé los parámetros ByRef en VB6, tampoco. Algo acerca de contar con los efectos secundarios para hacer algo solo me molesta.¿Qué pasa con los parámetros de salida?
Sé que son una forma de evitar el retorno de resultados múltiples de una función, pero un conjunto de filas en SQL o un tipo de datos complejo en C# y VB funcionan igual de bien, y me parecen más autodocumentados.
¿Hay algo de malo en mi forma de pensar, o hay recursos de fuentes autorizadas que me respalden? ¿Cuál es su opinión personal sobre esto y por qué? ¿Qué puedo decir a los colegas que quieren diseñar con parámetros de salida que puedan convencerlos de usar estructuras diferentes?
EDITAR: giro interesante: el parámetro de salida sobre el que hacía esta pregunta se utilizó en lugar de un valor de retorno. Cuando el valor de retorno es "ERROR", la persona que llama debe manejarlo como una excepción. Estaba haciendo eso pero no me gustó la idea. Un compañero de trabajo no fue informado de la necesidad de manejar esta condición y como resultado, se perdió una gran cantidad de dinero ya que el procedimiento falló en silencio.
Esto es subjetivo y debería ser wiki de la comunidad para su existencia continua. Noto que ya hay un golpe cercano. No cerraré a menos que no lo marque CW. – Randolpho
Qué sé, pero esto me parece una buena pregunta sobre las concesiones de diseño. – JeffH
cambié las etiquetas para incluir referencias sql + vb en las preguntas – gbn