Re: [firebase-br] Buscar Valor para gerar NovaIdentificação

Valdir Marcos valdir.marcos em ig.com.br
Sex Out 21 21:51:06 -03 2005


Mais ou menos seria algo assim:
Select
  'D' ||
  VariavelDelphiSexo ||
  Extract(Year from Current_Date) ||
  Extract(Day from Current_Date) ||
  Extract(Month from Current_Date) ||
  case
    when Coalesce((Select Max(Dependente) From Dependentes Where Titular = 
VariavelDelphiTitular), 1) < 9
      then '0' || Coalesce((Select Max(Dependente) From Dependentes Where 
Titular = VariavelDelphiTitular), 1)
    else
      Coalesce((Select Max(Dependente) From Dependentes Where Titular = 
VariavelDelphiTitular), 1)
>From rdb$Database;

Um abraço,

Valdir Marcos

----- Original Message ----- 
From: "User-BA" <meus_foruns em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, October 21, 2005 4:14 PM
Subject: [firebase-br] Buscar Valor para gerar NovaIdentificação


>
> Ola pessoal!
>
> Tenho 2 tabelas -> TITULARES e DEPENDENTES
>
> Em TITULARES tenho:
>
> um campo chave primária -> tit_chave
> um campo -> tit_identificacao (char (12))
> ... outros campos
>
> Em DEPENDENTES tenho:
>
> um campo chave primária -> dep_chave
> um campo chave estrangeira -> dep_tit_chave
> um campo -> dep_identificacao (char (12))
> ... outros campos
>
> Ao cadastrar um novo TITULAR ou DEPENDENTE no delphi,
> gero uma chave de identificação
> (conforme me foi solicitado pelo cliente)
> composta por uma sequencia de dados:
>
> "T" ou "D" (se titular/dependente) +
> "F" ou "M" (se feminino/masculino) +
> ano/dia/mes (estraido da data atual do sistema) +
> digito de contrôle (numero que identifica a quantidade de dependentes)
>
> Então as chaves ficariam assim nos cadastros:
>
> Para um titular:
> -> TM2005191000
> (usuario titular, masculino, cadastado em 19/10/2005)
> (os digitos 00 no final (servem apenas para compor os 12 digitos do char))
> (os titulares teram sempre "00" no final)
>
> Para os dependendes do titular acima:
> -> DM2005191001
> (usuario dependente, masculino , cadastrado em 19/10/2005)
> (o 01 indica primeiro dependente))
> -> DF2005102102
> (usuario dependente, feminino, cadastrado em 21/10/2005)
> (o 02 indica segundo dependente))
>
> * os dependentes podem ser cadastro em dadas diferentes :)
>
> ---
>
> Para os cadastros de Titulares não tem maiores problema,
> Ele seleciona o menu cadastrar TITULARES
> Ai eu monto a identificação conforme acima
>
> T + sexo (M ou F) + ano/dia/mes atual + 00
> (00 é fixo para os titulares)
>
> agora...
>
> Mas se for um dependente...
> Ai...
> Eu preciso saber se já tem algum dependente cadastrado (vinculado ao 
> titular)...
> E se tiver eu tenho que recuperar a ultima identificacao do dependente,
> para que eu pudesse acrescentar no final da identificação o valor (03, 04, 
> 05, etc)
>
> Vou disponibilizar uma tela
> para o usuario pesquisar e selecionar o TITULAR.
> Recupero a chave do titular,
> busco na tabela DEPENDENTES (na chave estrangeira)
> a chave primaria do titular.
> se não encontrar
> vou gerar a identificacao do dependente
> com a sequencia = D + M ou F + ano/dia/mes + 01.
> mas se encontrar,
> preciso localizar o ultimo numero da identificação
> para que eu gere uma identicação
> com a sequencia subsequente = D + sexo (M ou F) + ano/dia/mes + 03,04 ou 
> 05 etc.
>
> *** Entendo o algoritimo mas não sei como montar o select :(
> *** preciso reperar se tem ou não dependente
> *** se tiver preciso recuperar a ultima identificação do dependente.
>
> Gente...
> Me dá uma força neste select ou alguma dica para uma outra maneira de 
> recuperar esta informação.
>
> Delphi 7 + BDExpress + Firebird
>
> Obrigado
> User_BA
>
>
>
>
>
> _______________________________________________________ Promoção Yahoo! 
> Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais 
> de 500 prêmios! Participe! http://yahoo.fbiz.com.br/
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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