Uso de SUSPEND; Solo cuando el SP devuelve valores
¡Hola! compañeros.
Tengo una grandisima duda, que no he tenido tiempo de hacer pruebas, por andar con otros motores de bases de datos :( Quisiera preguntarles esto. Que solamente lo he usado en pruebas de escritorio el uso de SP desde Firebird por repetición sin saber el porque. ¿La Sentencia SUSPEND que uso tiene en un Stored Procedure?. ¿Indica un COMMIT? ¿Que se haga una pausa en el servidor de DB para que se actualize algo? ¿Tiene que ir al final del Procedimiento Almacenado o antes de una sentencia que aborta el Procedimiento Almacenado? o como dice este link: (Que aparte es muy bueno "COMO CREAR UN PROCEDIMIENTO ALMACENADO") si es un procedure que no devuelve nada solo ejecuta o sea no tiene suspend http://clubdelphi.com/foros/showthre...spend+firebird. Gracias por su apoyo. SELECT "MUCHAS GRACIAS" FROM DUAL; |
Hola Paoti
Primero que nada te diré que en Firebird/Interbase existen dos tipos de procedimientos:
Para responder a tu pregunta te pongo un ejemplo de los procedimientos tipo select.
Para llamarlo se usa una sentencia como esta:
Como puedes observar el uso de la sentencia FOR SELECT...DO dentro del procedimiento permite que su comportamiento sea similar a una tabla al llamarlo con la sentencia SELECT. Por otra parte, la sentencia SUSPEND detiene la execución del procedimiento para devolver los valores, es decir, cuando quieres enviar todo un renglón a la aplicación que lo ha llamado. Puedes hacer una serie de operaciones con las variables y cuando hayas obtenido el resultado que deseas entonces utilizas SUSPEND para devolver el resultado, observa en el ejemplo la variable line_no, una vez que se ha calculado se envia el resultado con SUSPEND. Espero que sea útil, saludos. |
La franja horaria es GMT +2. Ahora son las 16:33:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi