Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2006
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
mostrar sólo 5 caracteres de un varchar(75)

Hola,

estoy trabajando con IB7.5
El caso es que necesito hacer una consulta SQL a un campo de mi tabla, que es un varchar, y que me guarde en otro campo "temporal" o ficticio, el valor obtenido de tomar de dicho campo, los 5 primeros caracteres.

Así, si por ejemplo, tengo en dicho campo "Pepe perez y algo más" lo que se tendría que guardar es "Pepe ", aunque si pudiera hacerlo obviando los espacios en blanco mejor, esto es: "pepep"


Muchas Gracias por la ayuda de antemano,

Virginia Romero
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #2  
Antiguo 12-09-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Ahora mismo no se si funciona en IB pero prueba la funcion SBSTR;

Código SQL [-]
select substr(nombre, 5) from ...

Espero te sirva,

Saludos
Responder Con Cita
  #3  
Antiguo 12-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
En interbase tiene que agregar la UDF SubStr para que la pueda usar:

Código SQL [-]
DECLARE EXTERNAL FUNCTION SUBSTR
  CSTRING(80) CHARACTER SET ISO8859_1,
  SMALLINT,
  SMALLINT
RETURNS CSTRING(80) CHARACTER SET ISO8859_1 FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';

Ya luego para usarla:

Código SQL [-]
select SubStr(Field, 1, 5) from ...


Saludos...
Responder Con Cita
  #4  
Antiguo 13-09-2006
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Hola,

lo primero, gracias por contestar mi duda.

He escrito:

Código SQL [-]
select SubStr(clientes.apelcl, 1, 5) from clientes

al situar el cursor sobre la palabra SubStr me muestra un desplegable que pone:

Cita:
SubStr(Param1: CSTRING(256);Param2: SMALLINT; Param3: SMALLINT)
Al ejecutar el código SQL que comento, me devuelve el siguiente mensaje de error:

Cita:
Invalid token.
invalid request BLR at offset 63.
function SUBSTR is not defined.
module name or entrypoint could not be found.
He intentado hacer lo que me indicó maeyanes de poner:

Código SQL [-]
DECLARE EXTERNAL FUNCTION SUBSTR
  CSTRING(80) CHARACTER SET ISO8859_1,
  SMALLINT,
  SMALLINT
RETURNS CSTRING(80) CHARACTER SET ISO8859_1 FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';

pero al ejecutarlo me contesta:

Cita:
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE FUNCTION failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9".
Por si sirbe de algo, para gestionar IB estoy usando IB Expert.

Muchas gracias a todos por vuestro tiempo,

Atentamente
Virginia Romero.
__________________
Sonrie al mundo, y el mundo te sonreirá :)

Última edición por Giniromero fecha: 13-09-2006 a las 11:33:51.
Responder Con Cita
  #5  
Antiguo 19-09-2006
pjjorda pjjorda is offline
Miembro
 
Registrado: jul 2005
Posts: 34
Poder: 0
pjjorda Va por buen camino
substring

Saludos,

esto me funciona:

SELECT SUBSTRING(NOM FROM 1 FOR 5) FROM CLIENTES WHERE NUM<5

en firebird y con ibx7.5

si quieres eliminar los espacios, existen unas Udf de firebird, rtrim, ltrim, trim,
espero que puedas localizarlas.

espero haber sido de ayuda.
P.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como mostrar un string de 500 caracteres en una grilla afarenas Firebird e Interbase 2 18-07-2006 16:04:33
mostrar el cantidad maxima de caracteres en un memo Choclito Varios 1 03-05-2006 18:10:28
MaskEdit acepta sólo Caracteres y números???? AGAG4 Varios 9 17-11-2005 20:35:39
mostrar solo dos decimales clanmilano Varios 1 15-11-2005 23:31:52
mostrar SOLO cliente de los que tengo un sólo registro Giniromero SQL 15 11-06-2004 12:33:19


La franja horaria es GMT +2. Ahora son las 02:31:14.


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