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)
-   -   Truncar cadena texto (https://www.clubdelphi.com/foros/showthread.php?t=28159)

dsa10 12-12-2005 09:16:30

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

cahp 12-12-2005 16:08:19

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.

Héctor Randolph 12-12-2005 16:37:43

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.

dsa10 12-12-2005 17:17:32

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.

Héctor Randolph 12-12-2005 17:31:46

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


La franja horaria es GMT +2. Ahora son las 10:49:05.

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