DBEdit - autoincremento na tela. Como fazer?
Tenho um DBEdit que é ligado ao ID_COD da tabela.
Pergunta: Como faço para deixar o campo automático para aparecer como auto incremento exemplo: 1......10?
Uso FireBird 1.5 + IBExpert
Pergunta: Como faço para deixar o campo automático para aparecer como auto incremento exemplo: 1......10?
Uso FireBird 1.5 + IBExpert
Jpauloss
Curtidas 0
Respostas
Nigro
22/05/2007
Crie um campo e um generator para esse campo e ligue o DBEdit ao TField.
GOSTEI 0
Jpauloss
22/05/2007
Crie um campo e um generator para esse campo e ligue o DBEdit ao TField.
Valeu, pela resposta. Vou tentar.
Agora só uma dúvida. Neste caso é melhor criar uma SP ou uma trigger?
GOSTEI 0
Jpauloss
22/05/2007
No campo do dbedit do id_cod que é autoincremente sou obridado a colocar um número se não ele da um erro, me obrigando a colocar.
Como faço pra resolver?
Como faço pra resolver?
GOSTEI 0
Nigro
22/05/2007
Faça um generator dentro de uma trigger
GOSTEI 0
Jpauloss
22/05/2007
Faça um generator dentro de uma trigger
Já fiz isso pelo ibexpert, mas continua não aparecendo o código automatico, e quando não coloco ele dá um erro obrigando a colocar o codigo.
GOSTEI 0
Jsidronio
22/05/2007
[b:73237fb0fb]jpauloss[/b:73237fb0fb]...seguinte
Qual a paleta de conexão que vc usa....
Estou usando a paleta IBX e fiz dessa forma
:arrow: 1º Crie um Generator no Banco;
:arrow: 2º Faça a referencia do IbDataSet à tabela no banco;
:arrow: 3º Gere os scripts Sql no IBDataSet (menos os de Update);
:arrow: 4º Selecione o IbDataSet e no Object Inspector vc visualizará um campo chamado ´Generator Field´ dê um duplo clique e em seguida faça a ligação do campo referente a tabela e referente ao generator do banco e coloque o valor de incremento com valor 1.
:arrow: 5º Pronto...
Quando estava usando um Trigger com um generator não aparecia o valor que estava no campo quando estava executando... mas gravava e se eu verificasse no formulário de consulta aparecia o cadastro com o código perfeitamente incrementado....
Mas optei por usar o generator juntamenteo com o IBDataSet
:lol: Prós:
O campo será visualizado no formulário já com o número incrementado;
:cry: Contra:
Uma vez cancelada a gravação... o número será perdido...ou seja...incluindo o cadastro de ID 1 (primeiro) se vc cancelar... quando for incluir o outro... não será mais 1 e sim 2.
8) Espero que a dica tenha sido útil... 8)
Qual a paleta de conexão que vc usa....
Estou usando a paleta IBX e fiz dessa forma
:arrow: 1º Crie um Generator no Banco;
:arrow: 2º Faça a referencia do IbDataSet à tabela no banco;
:arrow: 3º Gere os scripts Sql no IBDataSet (menos os de Update);
:arrow: 4º Selecione o IbDataSet e no Object Inspector vc visualizará um campo chamado ´Generator Field´ dê um duplo clique e em seguida faça a ligação do campo referente a tabela e referente ao generator do banco e coloque o valor de incremento com valor 1.
:arrow: 5º Pronto...
Quando estava usando um Trigger com um generator não aparecia o valor que estava no campo quando estava executando... mas gravava e se eu verificasse no formulário de consulta aparecia o cadastro com o código perfeitamente incrementado....
Mas optei por usar o generator juntamenteo com o IBDataSet
:lol: Prós:
O campo será visualizado no formulário já com o número incrementado;
:cry: Contra:
Uma vez cancelada a gravação... o número será perdido...ou seja...incluindo o cadastro de ID 1 (primeiro) se vc cancelar... quando for incluir o outro... não será mais 1 e sim 2.
8) Espero que a dica tenha sido útil... 8)
GOSTEI 0
Paullsoftware
22/05/2007
[quote:d3e12b7433=´Nigro´]Faça um generator dentro de uma trigger
Já fiz isso pelo ibexpert, mas continua não aparecendo o código automatico, e quando não coloco ele dá um erro obrigando a colocar o codigo.[/quote:d3e12b7433]
vá no field editor da tabela e SET a propriedade REQUERID do campo chave primaria para FALSE assim ele não apresentará o erro...
uma outra maneira é vc passar o valor como ZERO e no GENERATOR vc fazer assim:
if (NEW.Codigo = 0 ) or (NEW.Codigo is null) then
NEW.CODIGO = GEN_ID(GEN_CATEG_ID,1);
espero ter ajudado :wink:
GOSTEI 0