Manual de BD4 / Lenguaje SQL / Procedimientos almacenados | Anterior / Siguiente |
Los procedimientos almacenados sirven para definir procesos de actualización de datos e informes que se ejecutan en el servidor. Tienen las siguientes ventajas:
En BD4 se pueden definir dos tipos de procedimientos almacenados:
Crear un procedimiento:
CREATE PROCEDURE nombre_procedimiento,?
Modificar un procedimiento:
ALTER PROCEDURE nombre_procedimiento,?
Borrar un procedimiento:
DROP PROCEDURE nombre_procedimiento
Obtener un procedimiento de tipo script:
GET PROCEDURE nombre_procedimiento
En las sentencias CREATE
y ALTER
el texto
del script del procedimiento se debe indicar como parámetro en una
sentencia preparada. Téngase en cuenta que en las sentencias preparadas
los parámetros se definen con el carácter '?'.
BD4 script es un lenguaje muy parecido a JavaScript que permite interactuar con Java. Al ser casi idéntico a JavaScript se puede usar cualquier editor que soporte este lenguaje.
Estas son algunas de las carácterísticas de BD4 script:
En los scripts se pueden definir todas las funciones que sean necesarias, pero algunas funciones son "especiales".
Si el procedimiento debe devolver un resultado, el tipo se puede definir al principio del script sin incluirlo en ninguna función.
var tipo = new SQLRowType(); tipo.add("CODIGO", Types.CHAR); tipo.add("NOMBRE", Types.CHAR); setReturnRowType(tipo);
La función run
se llamará cuando se ejecute el
procedimiento almacenado.
function run(param) { var it = param.iterator(); var primerParametro = it.next(), segundoParametro = it.next(); assert(!it.hasNext()); ... }
Si el procedimiento debe devolver un resultado, hay que definir
la función 'next
'. Esta función devolverá una fila del
resultado o 'null
' en caso de que no queden datos que
devolver.
function next() { var fila = newReturnRow(); ... return fila; }
Finalmente, es necesario definir una función close
que
al finalizar la ejecución del procedimiento cierre las sentencias y
las conexiones que haya realizado.
function close() { ... }
En los scripts se pueden llamar a las funciones de los objetos y además a las siguientes funciones especiales:
createStatement :
crea una sentencia SQL
prepareStatement :
prepara una sentencia SQL
commit :
confirma una transacción
rollback :
deshace una transacción
...