Página 1 de 1

Store Procedure

NotaPublicado: Vie Mar 06, 2009 9:58 pm
por cjaramillo
Hola.

Tengo una nueva inquietud. Quisiera saber como insertar en un grid los registros que han sido resultado de un store procedure.

Saludos

Re: Store Procedure

NotaPublicado: Lun Mar 09, 2009 3:35 pm
por Jorge Ubeda
cjaramillo escribió:Hola.

Tengo una nueva inquietud. Quisiera saber como insertar en un grid los registros que han sido resultado de un store procedure.

Saludos

CJaramillo
La pregunta es muy genérica. Se podría responder "con el mismo blockFetch con que cargas la grilla". Con más información se podría contestar mejor.

NotaPublicado: Mié Mar 11, 2009 5:13 pm
por cjaramillo
No sé como podrias cargar los resultados de un stored procedure con un blockfetch. Hasta ahora cuando he llamado a un SP, este me devuelve los valores especificados en el output, pero nunca he recuperado varios registros a la vez.
Espero me puedan ayudar.

Un poco más...

NotaPublicado: Mié Mar 11, 2009 11:25 pm
por Jorge Ubeda
cjaramillo escribió:No sé como podrias cargar los resultados de un stored procedure con un blockfetch. Hasta ahora cuando he llamado a un SP, este me devuelve los valores especificados en el output, pero nunca he recuperado varios registros a la vez.
Espero me puedan ayudar.

cjaramillo escribió:No sé como podrias cargar los resultados de un stored procedure con un blockfetch. Hasta ahora cuando he llamado a un SP, este me devuelve los valores especificados en el output, pero nunca he recuperado varios registros a la vez.
Espero me puedan ayudar.

Vayamos por partes...
1. No tengo experiencia directa con el uso de stored procedures, aunque sí con varias otras formas de intervenir a distintos niveles en el AS400 desde Plex. Por lo tanto, mi comentario no está apoyado en un uso directo.
2. Doy por supuesto que tu servidor es un AS400, y usas DB2. Eso es por costumbre, y por falta de información. Es conveniente que te expliques un poco más para poder avanzar.
3. Un blockFetch es una función servidora RPG (si estamos hablando de una variante Cliente Java o WinC/Servidor Iseries. Si estamos hablando de ODBC, hay variaciones, pero igualmente se puede hacer). Si estamos hablando de AS400, entonces hablamos de una función RPG. Se podría invocar el procedimiento usando directamente la llamada a nivel del procesamiento de cada fila por medio de las sentencias que el diagrama de acción tiene para procedimientos almacenados, o se puede usar una variante SQLRPG y construír la sentencia. Los parametros se pueden pasar. Es cuestión de ver el caso. Lo que llegue a un block fetch se puede pasar como cualquier otra cosa. Entonces, sin cambiar nada de la logica de carga de la grilla, tendrás el resultado.
4. Se puede discutir si un procedimiento almacenado es una buena solución. Si ya lo tienes, es una cosa. Si es una idea de desarrollo, habría que medir performance, y el impacto de la caja negra en el modelo.
Con más información se puede seguir más adelante. Tú dirás.

un poco más

NotaPublicado: Jue Mar 12, 2009 9:31 am
por Jorge Ubeda
Con un poco más de tiempo, y en base a la ayuda de Plex.
Sin conocer todavía en qué plataforma tienes que resolver el problema, veo que la ayuda no habla de cómo implementar procedimientos en AS400. Sí en JDBC u ODBC, lo que te puede servir de guía. Se menciona allí un modelo de demostración, Dbfunctions.mdl, en el grupo de modelos de ejemplo, que te puede ayudar. Está claro que podrías llamar un SP a nivel de cada fila recuperada, si acaso eso tiene sentido en tu caso (reitero que estamos hablando en el aire).
Dado que no hay información sobre AS400, si ese fuera tu ambiente, habría dos posibilidades, a mi juicio: llamar una función nativa que invocara el SP (function type API en el modelo), o ejecutar directamente un API CALL con el código correspondiente en una función tipo SQLRPG400.

NotaPublicado: Jue Abr 30, 2009 3:28 pm
por cjaramillo
Habia descuidado el tema pero lo he vuelto a retomar.

Estoy trabajando mediante odbc conectado a una base de datos de sybase. Los stores estan guardados en la base de datos y los llamo con las respectivas funciones type database, que como lo he explicado me funcionan bien para retornar un dato, pero no lo he logrado para un grupo de registros