Como fazer autonumeração com delphi 7 interbase

Delphi

22/05/2005

Ola. Gostaria de saber como faço para criar um campo autonumeração em uma tabela do interbase usando delphi 7?
Obrigado


Wagsilvasilva

Wagsilvasilva

Curtidas 0

Respostas

Arc@njo

Arc@njo

22/05/2005

Usa o Generator do Interbase.

CREATE GENERATOR AUTOINCREMENTO;

Para vc realizar o auto-incremento vc pode fazer da seguinte forma:

SELECT GEN_ID(AUTOINCREMENTO, 1) FROM RDB$DATABASE;

Usa o retorno deste select que ira gerar seu auto-incremento.


GOSTEI 0
Gandalf.nho

Gandalf.nho

22/05/2005

Vc tb pode usar uma trigger que irá incrementar automaticamente o valor do generator e atribuir a seu campo.


GOSTEI 0
Wagsilvasilva

Wagsilvasilva

22/05/2005

Escrevi o código conforme postado... mas ainda não funcionou... acho que deve ser feito mais alguma coisa que não sei o que é...

Obrigado


Sobre a trigger... nao sei trabalhar com ela ainda... na verdade estou começando a utilizar o interbase agora... sempre usei paradox mas agora to largando de mão.


GOSTEI 0
Pro-luck

Pro-luck

22/05/2005

Caro WagSilvaSilva,

Estou com esta dificuldade que vc tinha há algum tempo atrás. Com certeza hoje vc já deve ter aprendido a autonumerar os registros com o Interbase.

Será que vc pode me ajudar com esta dúvida? Eu estou usando o Firebird e o Delphi 7.

Certo da sua atenção, antecipadamente agradeço.
Um forte abraço e fica com Deus.


GOSTEI 0
Gil_araujo

Gil_araujo

22/05/2005

Cara cria um generator e um Trigger no banco!!!

qlqr coisa me add no msn

caetanoara@hotmail.com
vlw abraços


GOSTEI 0
Aluno31

Aluno31

22/05/2005

usa este codigo tambem funciona de maravilha

procedure Frm.BtnNovoClick(Sender: TObject);
var nreg : double;
begin
Dmo.TbEntrada.Last;
nreg := Dmo.TbEntradaCODIGO.Value + 1;
Dmo.TbEntrada.Append;
Dmo.TbEntradaCODIGO.Value := nreg;

end;


GOSTEI 0
Carlos Alves

Carlos Alves

22/05/2005

SET TERM ^ ;

1) Primeiro crie o Generete:

CREATE GENERATOR "GENERATE_LOG_ID";

2) Utilizando Tigger crie conforme abaixo:

/* Triggers only will work for SQL triggers */

CREATE TRIGGER "TRIGGER_LOG_ID" FOR "LOG"
ACTIVE BEFORE INSERT POSITION 1
AS

begin
NEW.id = GEN_ID(generate_Log_id, 1);
end
^

COMMIT WORK ^
SET TERM ;^

3) se quiser fazer na classe em delphi:

function GeneratorID (aName: string; Connection: TSQLConnection;
Incrementa: Boolean): integer;
var
Qry: TSQLQuery;
begin
Qry := TSQLQuery.Create(nil);
try
Qry.SQLConnection := Connection;
if Incrementa then
Qry.SQL.Add(
'SELECT GEN_ID('+aName+', 1) FROM RDB$DATABASE')
else
Qry.SQL.Add(
'SELECT GEN_ID('+aName+', 0) FROM RDB$DATABASE');
Qry.Open;
Result := Qry.Fields[0].AsInteger;
finally
FreeAndNil(Qry);
end;
end;

e depois

dmCliente.cdsClienteID.value := GeneratorID( 'Cliente', SQLConnection, True );


Espero ter contribuído..

Um Abraço
FAUSTAO
GOSTEI 0
POSTAR