Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Una Ayudita con un campo largo (https://www.clubdelphi.com/foros/showthread.php?t=26907)

Carmelo Cash 07-11-2005 14:07:25

Una Ayudita con un campo largo
 
Hola Foro:

Tengo un problemilla, necesito seleccionar el campo nombre de la tabla de clientes, pero este campo debe tener un largo fijo de 30 caracteres.
Entonces hago:

select cast(customer_name as char(30)) from customer

El problema es que en la tabla, el campo está definido como Varchar(50) y cuando el nobre tiene más de 30 caracteres me larga un error. :confused:

Estoy Usando Interbase 1.0 open Sourse.

Desde ya agradesco vuestra atención.

Saludos.

Carmelo Ganduglia.

Lepe 07-11-2005 16:15:15

Traete el campo con 50 caracteres sin hacer el cast.

Doble clic a tu consulta, add all fields, y despues al campo Cliente le pones DisplayWidth a 30 en el inspector de objetos, si quieres usar MaxLength, también puedes limitarlo.

Ya sabes, a problemas dificiles, soluciones fáciles ;).

saludos

Carmelo Cash 07-11-2005 16:16:16

Aclarando
 
Perdón, creo que hice muy confuso el planteo.

En concreto ¿cómo puedo hacer para mostrar los 3 primeros caracteres de un campo?

select 'PEPE' from master
muestra
'pepe'
y quiero ver
'pep'

Gracias

maeyanes 07-11-2005 16:49:21

No se si firebird tenga las mismas UDF que interbase, si es así, agrega la UDF SubStr a tu base de datos.

Una vez agregada, puedes usarla de esta forma:

Código SQL [-]
select substr(Nombre, 1, 30) Nombre30 from Master


Saludos...

Carmelo Cash 07-11-2005 18:29:22

Graciar pero...
 
Gracias, pero Interbase no tiene la función substr()

maeyanes 07-11-2005 18:45:18

Cita:

Empezado por Carmelo Cash
Gracias, pero Interbase no tiene la función substr()

Integrada no, pero viene como parte de una UDF (User Defined Function), la cual tienes que agregar a tu base de datos.

Lee en la ayuda de Interbase todo lo referente a las UDF.

Casimiro Notevi 07-11-2005 19:55:11

Cita:

Empezado por Carmelo Cash
Estoy Usando Interbase 1.0 open Sourse.

¿Será Interbase 6.0 o Firebird 1.0 ?

Lepe 08-11-2005 10:35:54

Despues de 7 mensajes, la pregunta creo que es ¿Qué pretendes hacer?

La verdad no encuentro el sentido de traer 3 letras nada más del servidor; si dices lo que pretendes, quizás haya otra forma más fácil.

saludos

Carmelo Cash 10-11-2005 12:13:35

Gacias
 
Listo, se pudo resolver utilizando la función substr('pepe',1,3)

Gracias por su ayuda


La franja horaria es GMT +2. Ahora son las 05:24: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