Fórum Como fazer autonumeração com delphi 7 interbase #282613

22/05/2005

0

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


Wagsilvasilva

Wagsilvasilva

Responder

Posts

22/05/2005

Arc@njo

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.


Responder

Gostei + 0

23/05/2005

Gandalf.nho

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


Responder

Gostei + 0

29/05/2005

Wagsilvasilva

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.


Responder

Gostei + 0

12/02/2008

Pro-luck

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.


Responder

Gostei + 0

12/02/2008

Gil_araujo

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

qlqr coisa me add no msn

caetanoara@hotmail.com
vlw abraços


Responder

Gostei + 0

16/02/2008

Aluno31

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;


Responder

Gostei + 0

25/09/2015

Carlos Alves

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar