Como fazer autonumeração com delphi 7 interbase
Ola. Gostaria de saber como faço para criar um campo autonumeração em uma tabela do interbase usando delphi 7?
Obrigado
Obrigado
Wagsilvasilva
Curtidas 0
Respostas
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.
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
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
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.
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
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.
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
22/05/2005
Cara cria um generator e um Trigger no banco!!!
qlqr coisa me add no msn
caetanoara@hotmail.com
vlw abraços
qlqr coisa me add no msn
caetanoara@hotmail.com
vlw abraços
GOSTEI 0
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;
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
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
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