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)
-   -   Quitar espacios de campos CHAR (https://www.clubdelphi.com/foros/showthread.php?t=12599)

cartmanrules 21-07-2004 18:10:40

Quitar espacios de campos CHAR
 
Hola!

Tengo el siguiente problema:

Todas las tablas que componen una aplicación tienen sus campos alfanuméricos declarados como CHAR(n). Al principio no hice mucho caso de que existe un VARCHAR(n) y ahora me arrepiento :rolleyes: . El caso es que necesito imprimir (con Quick Reports) un informe que tenga el nombre y apellidos del cliente unidos, pero al concatenar los dos campos siempre rellena el nombre con espacios en blanco, y Interbase (v 6.5) no tiene ninguna función similar al TRIM. Lo ideal sería lo siguiente:

select trim(cli_nombre)||' '||trim(cli_apellidos) as cli_nombrecompleto

Pero no puedorrr... ¿Alguien se ha topado con este problema? ¿Una pista para la solución?

Gracias!

ruina 21-07-2004 18:50:30

en realidad si que tienes trim, creo que es LRTRIM (Left-Right trim), pero me parece que está definida en la freeudf.dll

ACK 22-07-2004 10:29:08

Una solución, sin pasar por tener que instalar alguna libreria de funciones, sería borrar los campos que tienes definidos como char(n) y crearlos de nuevo como varchar(n).

La otra solución es buscar una librería de udf's que contenga alguna función que pueda hacer lo que tu necesitas.

Yo utilizo la librería rfunc. La puedes encontrar aquí. En ella están las funciones ltrim, rtrim y trim, así como un montón de funciones para trabajar con cadenas, números, nulos, fechas, blobs, etc.

Espero haberte ayudado.

Saludos.

Rufus 22-07-2004 10:53:06

Interbase sí incorpora funciones para eso.

En la librería estándar que viene, la ib_udf.dll tienes las siguientes funciones:

  • LTRIM(): Elimina los caracteres en blanco de la izquierda.
  • RTRIM(): Elimina los caracteres en blanco de la derecha.
Aunque yo lo que haria seria o cambiar el tipo del campo a VARCHAR() o crear un campo VARCHAR() nuevo y pasar los datos.


La franja horaria es GMT +2. Ahora son las 19:22:49.

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