[firebase-br] ajuda com campo auto incremento

Evandro Siqueira vansiqq em gmail.com
Seg Nov 19 08:21:46 -03 2007


Ótimo!

Feito isto resta apenas lembrar de criar uma triger ou sp para zerar o
generator na virada do ano.

[]'s
Evandro Siqueira
Aracaju/SE


Em 19/11/07, Fausto <fausto.s.a em uol.com.br> escreveu:
>
> logam2 em gmail.com escreveu:
> > Sou iniciante em FB tenho uma tabela onde cadastro ordens de serviço
> nessa
> > tabela tenho um campo ID_OS que é um campo do tipo integer auto
> incremento
> > ele preenche o campo 1,2,3,4,5....
> > mas eu gostaria que ele pegace o valor do generator e juntace com os
> ultimos
> > dois digitos do ano corrente e preenchece o campo IS_OS assim:
> > 01/07,02/07,03/07,04/07,05/07...
>
> Neste caso você teria que criar um campo varchar, ou seja, deixar o
> campo com o generator e neste novo campo varchar armazenar o conteúdo
> como você esta querendo.
> Há duas maneiras de fazer isso, se estiver utilizando o Delphi, no
> evendo before post de sua Tabela, ou ClientDataSet, você pega o
> generator e "monta" o conteúdo do campo varchar em questão.
> Mais ou menos assim:
> SuaTabelaouSeuClientDataSetBeforePost..
> begin
>   camponovo := StrZero(pegargenerator(),6,0)+YearOff(Date);
> end;
> a função StrZero você acha na net, o YearOff tem que declarar a Unit
> DateUtils, função pegargenerator, você encontra no site da firebase, ou
> em www.activedelphi.com.br, não exatamente com este nome.
> Você pode também criar uma trigger para fazer isso.
> que seria assim.
> SET SQL DIALECT 3;
>
> SET NAMES WIN1252;
>
> CREATE GENERATOR GEN_TBLTESTE;
>
> SET TERM ^ ;
>
>
> CREATE TRIGGER TBLTESTE_BI FOR TBLTESTE
> ACTIVE BEFORE INSERT POSITION 0
> AS
> DECLARE VARIABLE CODAUX CHAR(12);
> BEGIN
>   IF (NEW.ID_OS IS NULL) THEN
>     NEW.ID_OS = GEN_ID(GEN_TBLTESTE,1);
>   CODAUX = LPAD(NEW.ID_OS,6,'0')||'/';
>   NEW.IS_OS = CODAUX;
> END
> ^
>
>
> SET TERM ; ^
> A função LPAD, faz parte das libs que acompanham o Firebird, para
> instala-las creio que você deve encontrar alguma coisa no site da
> Firebase.
> Outra coisa, não consegui anexar o ano como você quer, mas creio que não
> deva ser tão difícil, o problema é que estou com muito trabalho aqui.
> --
> Fausto Alves
> Franca - SP
> Enviado pelo Mozilla Thunderbird
> http://br.mozdev.org/thunderbird
>
>
> ______________________________________________
> 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
>



-- 
Evandro Siqueira
Programador
Aracaju/SE



Mais detalhes sobre a lista de discussão lista