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-12-2005
dsa10 dsa10 is offline
Registrado
 
Registrado: dic 2005
Posts: 2
Poder: 0
dsa10 Va por buen camino
Truncar cadena texto

Hola, soy nuevo por aquí y tengo una duda. Necesito una función que me trunque una cadena de texto, es decir, tengo una tabla con varios campos y uno de ellos es 'Titulo', cuyos registros empiezan todos por la palabra 'Modelo...'. Lo que quiero es recorrer toda la tabla y eliminar esa palabra de todos los registros, dejando el resto de la cadena igual. El motor de la base de datos es Firebird. Gracias
Responder Con Cita
  #2  
Antiguo 12-12-2005
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Lo puedes hacer mediante un procedimiento almacenado, o bien si utilizas delphi (lo que yo conozco) es hacer una rutina que recorra todos los registros y sustituir el la palabra 'Modelo' por ''.

ya comentas si tienes mas dudas.

Saludos.
Responder Con Cita
  #3  
Antiguo 12-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Si utilizas Firebird, puedes aprovechar las UDF (Funciones definidas por el usuario); tienes que crear una bilbioteca DLL con las funciones que deseas ejecutar, en este caso puedes hacer en Delphi la función que elimine el prefijo 'MODELO' y generar una DLL. Después esta función la decalaras en Firebird para que la reconozca y listo.

La principal ventaja de las UDF es que puedes llamarlas dentro de las sentencias SQL, por ejemplo

Código SQL [-]
  SELECT EliminaPrefijoModelo(mi_campo) FROM mi_tabla;

Firebird tiene algunos ejemplos de estas funciones en la carpeta examples y en la carpeta UDF, en el foro también puedes encontrar información.

Un saludo.
Responder Con Cita
  #4  
Antiguo 12-12-2005
dsa10 dsa10 is offline
Registrado
 
Registrado: dic 2005
Posts: 2
Poder: 0
dsa10 Va por buen camino
Claro, pero el problema es que no se que función utilizar para truncar esa cadena de texto. He leído por ahí que con la funcion SUBSTR se puede hacer.
Responder Con Cita
  #5  
Antiguo 12-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Espera un momento, tienes razón; entre las funciones UDF que trae Firebird está substr

Cita:
Empezado por archivo ib_udf.sql

/*****************************************
*
* s u b s t r
*
*****************************************
*
* Functional description:
* substr(s,m,n) returns the substring
* of s which starts at position m and
* ending at position n.
* Note: This function is NOT limited to
* receiving and returning only 80 characters,
* rather, it can use as long as 32767
* characters which is the limit on an
* INTERBASE character string.
* Change by Claudio Valderrama: when n>length(s),
* the result will be the original string instead
* of NULL as it was originally designed.
*
*****************************************/
Solamente tienes que ejecutar el script ib_udf.sql en FireBird para registrar la función y poder utilizarla

Saludos
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


La franja horaria es GMT +2. Ahora son las 23:13:31.


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