Cargando

La biblioteca UDF de InterBase Por Alfonso Ricaño Bringas InterBase es una base de datos extensible, es decir, que pueden incorporársele funciones externas que pueden ser utilizadas en las instrucciones SQL. Esto hace de InterBase una base de datos muy flexible, ya que no dependemos de un programa cliente para realizar funciones complejas sobre los datos. Esto se realiza por medio de las UDFs (User Defined Functions).

InterBase trae consigo un número de funciones que se necesitan frecuentemente. Estas funciones están dentro de una biblioteca UDF, llamada ib_udf.dll en Windows y en las plataformas Unix se llama ib_udf. Para utilizar esta biblioteca, se debe ejecutar un script de sql, llamad ib_udf.sql, en el directorio /examples/udf dentro del directorio de instalación de InterBase. Si deseas declarar solo algunas de las funciones, debes de editar el script. Algunas de estas UDFs deben ser llamadas utilizando el nuevo comando FREE_IT, solo si están escritas de tal manera que sean seguras en procesos (thread-safe), y utilizando malloc para reservar memoria dinámica. A continuación está la lista de funciones que vienen en la biblioteca UDF de InterBase:

Nombre de la función
Descripción
Entrada
Salida
ABS() Valor absoluto Double precision Double precision
ACOS() Arco coseno Double precision Double precision
ASCII_CHAR() Regresa un caracter basado en el código ASCII Integer Char(1)
ASCII_VAL() Regresa el código ASCII para el caracter dado Char(1) Integer
ASIN() Arco seno Double precision Double precision
ATAN() Arco tangente Double precision Double precision
ATAN2() Arco tangente dividido entre el segundo argumento Double precision, Double precision Double precision
BIN_AND() Operación AND sobre los bits Integer Integer
BIN_OR() Operación OR sobre los bits Integer Integer
BIN_XOR() Operación XOR sobre los bits Integer Integer
CEILING() Redondear al valor superior entero más cercano Double precision Double precision
COS() Coseno Double precision Double precision
COSH() Coseno hiperbólico Double precision Double precision
COT() Cotangente Double precision Double precision
DIV() División entera Integer Integer
FLOOR() Redondea hacia el valor inferior entero más cercano Double precision Double precision
LN() Logaritmo natural Double precision Double precision
LOG() Logaritmo del primer argumento, por la base del segundo argumento

Double precision, Double precision

Double precision
LOG10() Logaritmo base 10 Double precision Double precision
LOWER() Pasa todos los caracteres a minúsculas Cstring(80) Cstring(80)
LTRIM() Elimina los espacios a la izquierda CString(80) Cstring(80)
MOD() Residuo entre los dos argumentos Integer, Integer Integer
PI() Regresa el valor de PI (3.141592...) -- Double precision
RAND() Regresa un valor aleatorio -- Double precision
RTRIM() Elimina los espacios a la derecha CString(80) Cstring(80)
SIGN() Regresa -1, 0, o 1 Double precision Integer
SIN() Seno Double precision Double precision
SINH() Seno hiperbólico Double precision Double precision
SQRT() Raíz cuadrada Double precision Double precision
STRLEN() Longitud de la cadena CString(32767) Integer
SUBSTR() Subcadena, empezando a partir de la posición especificada por el segundo argumento, con una longitud igual al tercer argumento CString(80), Smallint, Smallint Cstring(80)
TAN() Tangente Double precision Double precision
TANH() Tangente hiperbólica Double precision Double precision
En un próximo artículo veremos un ejemplo de cómo utlizar estas funciones, así como de algunas otras bibliotecas de funciones, como la FreeUDFLib, realizada por Gregory Deatz y publicada en el sitio de Mers (http://www.mers.com). 28-Marzo-2001