6 de noviembre de 2015

Cómo pasar uno o más registros a un procedimiento.

Esta explicación surgió de una pregunta en el foro de micsoroft.public.es.vfoxpro sobre cuál es la mejor forma de pasar uno o varios registros (por ejemplo de un resultado SQL) a otros programas.

Para pasar uno o varios registros a otros programas hay varias opciones, y la elección de una dependerá de qué te resulte más cómodo.

PODÉS CREAR UN CURSOR

- Ventajas
  • Mantenés los nombres de campos
  • Mantenés toda la información de la estructura
  • Si se agregan o quitan columnas sólo se debe modificar el código que haga referencia a ellas
- Desventajas
  • Su visibilidad es dependiente de la sesión de datos donde se crea
  • No lo podés pasar por parámetro a otros procedimientos
PODÉS CREAR UN ARRAY

- Ventajas
  • Su visibilidad no es dependiente de la sesión de datos donde se crea
  • Lo podés pasar por parámetro a otros procedimientos
- Desventajas
  • Perdés toda la información de la estructura
  • Tenés que documentar bién qué es cada columna
  • Si se agregan o quitan columnas se debe modificar el código que haga referencia a todas las columnas, porque puede ocurrir un desplazamiento en el índice de la columna
PODÉS GENERAR XML

- Ventajas
  • Mantenés los nombres de los campos
  • Mantenés toda la información de la estructura
  • Si se agregan o quitan columnas sólo se debe modificar el código que haga referencia a ellas
  • Lo podés pasar por parámetro a otros procedimientos (al final es un sólo string)
  • Su visibilidad no es dependiente de la sesión de datos donde se crea
- Desventajas
  • Requiere un paso adicional para su interpretación (creando un objeto DOM para leerlo o volviendo a pasarlo a un nuevo cursor)
PODÉS CREAR UN OBJETO SESSION CON UN CURSOR DENTRO

- Ventajas
  • Actúa como un objeto de datos y por lo tanto permite la separación de ésta capa del resto
  • Mantenés los nombres de los campos
  • Mantenés toda la información de la estructura
  • Si se agregan o quitan columnas sólo se debe modificar el código que haga referencia a ellas
  • Lo podés pasar por parámetro a otros procedimientos
  • La visibilidad del objeto no es dependiente de la sesión de datos donde se crea y el cursor que lleva dentro no es afectado por la misma
  • Al ser un objeto, podés incluir métodos de negocio para devolver los datos de distintas formas o en distintos formatos
- Desventajas
  • Requiere definir los métodos de negocio para realizar las consultas dentro del objeto (aunque una vez definidos, sólo se instancia la clase)
  • Requiere crear el objeto para pasarle la consulta
- Observaciones
  • No sé si aplicaciones distintas de VFP soportan esta clase de objeto
  • Yo comencé a experimentar con esta técnica para ciertas situaciones y por el momento me resulta cómoda y rápida, ya que sólo definí un conjunto de métodos genéricos para generar las consultas (tipo cursoradapter), y no requiero de un intérprete XML (lo uso en VFP 6)

Fernando D. Bozzo

No hay comentarios. :

Publicar un comentario