Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Funcion Trim (https://www.clubdelphi.com/foros/showthread.php?t=85306)

jafera 27-02-2014 10:23:58

Funcion Trim
 
Hola a todos.

Uso Firebird 1.5.6 y leyendo los documentos sobre el mismo, veo que la función TRIM se añadió a partir de la version 2.0.

He estado buscando un ejemplo de como poder borrar los espacios en blanco a la derecha de un campo de forma masiva y no consigo dar con el resultado. En algún hilo antiguo se dice que se tiene que registrar la funcion ib_udf.dll, pero no me aclaro.

Vamos lo que necesito hacer es un update a una columna de una tabla y que me borre los espacios en blanco a la derecha de los caracteres válidos, el caso es que me mandan un fichero txt el cual importo sin problemas a una tabla temporal, pero como al sistema web de la federación accede mucha gente para tramitarse su licencia y a veces pues dejan estos espacios en blanco.

Luego lo que hago es concatenar los campos apellido1, apellido2 y nombre para obtener un solo campo más facil de manejar y claro quedan unos buñuelos que dan pena.

Basicamente necesitaría hacer esto:

Código SQL [-]
SQL.Text:='UPDATE CTR0003 SET NOM_LLARG = RTRIM(COGNOM1)||'' ''||RTRIM(COGNOM2)||'', ''||RTRIM(NOM)';

Lo que recibo es un mensaje de Firebird diciendome que RTRIM es una función desconocida.

Alguna ayudita?

Gracias

Josep

Neftali [Germán.Estévez] 27-02-2014 12:20:11

Tal vez podrías utilizar UDF's externas.
Aquí tienes una lista de algunas disponibles y las versiones de IB y FB sobre las cuales las puedes utilizar.

jafera 27-02-2014 16:29:33

Solucionado
 
Gracias a tods.

Ya he entendido como se declara una función externa:

Código SQL [-]
DECLARE EXTERNAL FUNCTION RTRIM
CSTRING(25) CHARACTER SET ISO8859_1
RETURNS CSTRING(25) CHARACTER SET ISO8859_1 FREE_IT
ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';

Funciona a la perfección.

A veces me cuesta un poco entender las bases, pero con vuestra ayuda dándome una guía de por donde debo tirar al final casi siempre acabo solucionándolo.

Saludos

Josep


La franja horaria es GMT +2. Ahora son las 03:00:19.

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