jueves, 6 de noviembre de 2008

/declaración de variables en Firebird



Estoy usando Firebird como motor de base de datos (open source, liviana, rápida, y considerablemente completa).

Situación: estaba creando procedimientos almacenados y disparadores, en ellos necesitaba declarar variables locales.
Cuando compilo el script, me sale error en la declaración de la variable. Leo la documentación que provee el sitio, y para mi sorpresa estaba respetando la sintaxis.
Para aislar el error, comenté el resto, y en efecto, la parte conflictiva estaba en la declaración de variables.

La documentación consultada fue: Developers Guide, Embedded SQL, Language Reference.

En un foro me dan la respuesta, la documentación tiene impresiciones, la declaración de la variable debe ir antes del cuerpo del procedimiento/disparador, o sea antes del BEGIN:

Este es un ejemplo del código correcto y que funciona:


CREATE OR ALTER trigger pacientes_bi0 for pacientes
active before insert position 0
AS
DECLARE VARIABLE clave_pac INTEGER; /* Aqui debe ir antes del BEGIN*/
begin
if (new.cod_pac is Null) then
begin
EXECUTE PROCEDURE getcodpac 'Pacientes' RETURNING_VALUES :clave_pac;
new.cod_pac = clave_pac + 1;
end
/* Trigger text */
end



NOTA: No solo ya viene con Ubuntu, es además sumamente popular en Brasil, Italia y y otros países europeos, especialmente entre los desarrolladores Delphi, permite embeber la base de datos en un sólo archivo .DLL junto con su aplicación.





2 comentarios:

El ruso dijo...

Chauuuu....de este post no caso una !!!!
me quedo con el candombe...
Besos

rog dijo...

jej no te preocupes, ni yo entiendo a veces :)