Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como extraer de una cadena de 18 caracter, las primeras 10 letras? (https://www.clubdelphi.com/foros/showthread.php?t=44928)

Nelly 18-06-2007 18:50:43

¿Como extraer de una cadena de 18 caracter, las primeras 10 letras?
 
Hola a todos buen dia.

Primero que todo, trabajo con firebird 2.0, junto al IB Expert, lo que necesito es lo siguiente:
Tengo una clave de 18 caracteres en total, y necesito comparar las primeras 10 letras con otras claves, vaya tengo una tabla con 18 mil registros y quiero comparar esas dos claves que tengo en esa tabla, cuales coinciden en las primeras 10 letras, por ejemplo:

ABABAG50041531H700 | ABABAG50041823H701

De ante mano muchas gracias por su tiempo.

maeyanes 18-06-2007 18:56:45

Hola...

Desde donde quieres realizar esta comparación? Desde Delphi? Si es así, puedes usar la función Copy para obtener los primeros 10 caracteres de la cadena de texto:

Código Delphi [-]
  Cadena10 := Copy(CadenaFuente, 1, 10);

Si deseas hacerlo desde un query en el servidor, tendrías que declarar la UDF SUBSTR dentro de tu base de datos...


Saludos...

Nelly 18-06-2007 19:10:22

No deseo hacerlo desde Delphi, sino, solo quiero ver el resultado de la consulta, vaya lo que quiero es ver como seria la consulta para estraer ese resultado, que me muestre todos los que coincidan en la comparación de las primeras 10 letras. Me explico?

maeyanes 18-06-2007 19:50:56

Primero tienes que declarar la UDF SUBSTR, esto lo haces así:

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';

Luego puedes hacer una consulta del tipo:

Código SQL [-]
select * from Tabla where SUBSTR(Campo, 1, 10) = 'ABABAG5004'

Con esto te debe devolver todo los registros cuyo valor en el Campo inicie con la cadena especificada...


Saludos...

ContraVeneno 18-06-2007 19:51:27

Código SQL [-]
Select substring(Campo, 0, 10)
from tabla

Lepe 18-06-2007 20:00:09

Ya puestos... mejor que lo declare ib Expert o el programa de turno.

En la carpeta Archivos de programa\Firebird\UDF tienes 2 archivos de extensión sql (puedes abrirlos con el bloc de notas), lo puedes importar en un Script de Ib Expert y añadir todas las UDF a tu BBDD. Seguro que te serviran.

Saludos


La franja horaria es GMT +2. Ahora son las 20:08:41.

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