Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Debates (https://www.clubdelphi.com/foros/forumdisplay.php?f=29)
-   -   Libreria de UDF para interbase (https://www.clubdelphi.com/foros/showthread.php?t=1752)

chutipascal 26-06-2003 12:56:26

Libreria de UDF para interbase
 
Hola.
Hace tiempo que me viene rondando en el coco que podriamos crear, entre los que quieran participar, una libreria de udfs con funcionalidades que hemos necesitado en interbase como por ejemplo este caso:
http://www.clubdelphi.com/foros/show...&threadid=1623
La verdad nunca he tenido la necesidad de definir alguna (siempre he usado algún truquito) porque el tiempo siempre me apremia.
¡Pero se como empezar!
---> leyendo las documentaciones!.

Para empezar estas funciones puede ser util :

* nvl(x) para transformar los nullos en ceros.
* IsEqual(x, y) Devuelve 1 si y es igual a x y 0 si no lo es.


¿Alguna idea más?
¿Alguien se quiere apuntar?
¿Como lo hacemos?
¿alguno tiene codigo para compartir?
etc...

Un saludo.

jachguate 26-06-2003 14:13:00

Si alguien conoce la función Decode de Oracle... seguramente la extrañará en Interbase... aunque no creo que sea fácil implementarla.

Con la función decode practicamente metés un Case dentro de tu SQL.

a ver si me explico con un ejemplo:

En oracle vos podes hacer algo como:

Código:

  Select to_number(to_char(sysdate, 'MM')) mes,  decode(mes,
      1, 'Enero', 2, 'Febrero', 3, 'Marzo', 4, 'Abril', 5, 'Mayo', 6, 'Junio',
      7, 'Julio', '8', 'Agosto', 9, 'Septiembre', 10, 'Octubre', 11, 'Noviembre', 12, 'Diciembre') NombreMes
    from dual;

y la función te devolveria algo como:

Código:

Mes  NombreMes
--- ------------
6  Junio

ya se que se puede definir una función que se llame NombreMes y todo resuelto... pero este es un ejemplo trivial.

Realmente permite hacer cosas maravillosas... con poco esfuerzo. Yo he tenido que hacer stored procedures que devuelven un dataset en interbase para conseguir el mismo resultado que podria conseguir en oracle en 5 minutos, inviertiendo incluso horas....

Por cierto... también las rutinas para convertir entre tipos.... digamos:

to_number('1580');
To_Char(SysDate, 'dd/mm/yyyy');
to_char(1580, '9,999,990.00');

Etc.

hasta luego.

;)

kinobi 26-06-2003 23:40:09

Hola,

Cita:

Posteado originalmente por chutipascal
¿Como lo hacemos?
yo empezaría por revisar qué otras bibliotecas de UDF's existen para no duplicar trabajo (*) innecesariamente. Aquí van unas cuantas direcciones desde las que se pueden descargar algunas de estas bibliotecas:

1. FUDLibrary - Más de 60 funciones de todo tipo - Licencia GPL

2. BLOBOudfLib - Funciones para BLOB's - Licencia similar a MPL

3. IFUDF, TBUDF, CPFUDF - Más de 100 funciones de todo tipo - Open Source

4. rFunc - Más de 90 funciones de todo tipo - Licencia LGPL

5. fpc_udf - Varias funciones (para Free Pascal) - Open Source

Incluso cabría la posibilidad de no empezar un nuevo proyecto, sino colaborar con alguno de los anteriores.

Saludos.

(*) Entiendo que se está proponiendo un proyecto Open Source, ¿es así?

chutipascal 28-06-2003 14:28:33

Gracias Kinobi, estoy encantado. no sabia que habia tantas udf en el dominio publico, creo que lo más acertado en este caso es participar en uno de esos desarrollos.


La franja horaria es GMT +2. Ahora son las 16:30:08.

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