Re: [firebase-br] Funções para de String

Ubirajara Nogueira usnogueira em gmail.com
Qui Ago 2 08:16:03 -03 2007


Existe uma UDF que vem junto com FB desde a versão 1.0, não sei se com
o 2.0também vem. É a SUBSTRLEN que tem a função de retornar o tamanho
máximo de
uma string. A DLL ib_udf.dll deve estar presente no diretório UDF do
Firebird. Daí é só registrá-la. Veja:

/*****************************************
 *
 *    s u b s t r l e n
 *
 *****************************************
 *
 * Functional description:
 *    substr(s,i,l) returns the substring
 *    of s which starts at position i and
 *    ends at position i+l-1, being l the length.
 *    Note: This function is NOT limited to
 *    receiving and returning only 255 characters,
 *    rather, it can use as long as 32767
 *     characters which is the limit on an
 *    INTERBASE character string.
 *
 *****************************************/
DECLARE EXTERNAL FUNCTION substrlen
    CSTRING(255), SMALLINT, SMALLINT
    RETURNS CSTRING(255) FREE_IT
    ENTRY_POINT 'IB_UDF_substrlen' MODULE_NAME 'ib_udf';


-- 
Ubirajara Nogueira
Analista de Sistemas
Petrolina - PE

Em 01/08/07, Leandro Victor Fidelis <leandro em isiengenharia.com.br> escreveu:
>
> Galera,
>
>   Preciso fazer um update em uns campos que terminam em um mesmo padrão.
> Por exemplo: abcFIM, ttttFIM, hhlopeFIM. Eu queria fazer um update para
> tirar o fim deixando os valores dessa forma: abc, tttt, hhlope.
>
>   Eu pensei em duas soluções:
>
>   1) Fazer um update do campo para um substring do campo. Neste caso eu
> precisaria saber o FROM e o FOR. Como os campos tem tamanhos diferentes e eu
> não conheço nenhuma função que me retorne o tamanho do campo, descartei essa
> hipotese.
>
>   2) Inverter o valor do campo e ai sim usar um substring porque eu sei
> que vai ser "from 3 for ValorMaximoCampo". Mas eu também não conheço nenhuma
> função que inverta string no firebird. (ex: Leandro = ordnaeL)
>
>
>   Se alguem souber das funções que faltam nas soluções acima ou pensar em
> alguma outra solução me ajude por favor. Eu uso o Firebird 2.0
>
> Obrigado,
>
> Leandro Victor Fidelis
> ISI Engenharia - P&D Campinas
> www.isiengenharia.com.br
> (19)32366656 / (19)32345311
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista