Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 22
chutipascal Va por buen camino
Lightbulb 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.
Responder Con Cita
  #2  
Antiguo 26-06-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 26-06-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
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í?

Última edición por kinobi fecha: 26-06-2003 a las 23:43:50.
Responder Con Cita
  #4  
Antiguo 28-06-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 22
chutipascal Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:47:27.


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
Copyright 1996-2007 Club Delphi