Auto incremento no Firebird, mas no código.

Delphi

01/03/2004

:?: :?: Gostaria de saber como crio um campo autoincremento, no firebird. O problema é que aqui no trabalho o dono solicitou gerar-se uma unit só para gerenciar o autoincremento, inclusive criá-lo a partir de qualquer campo integer (aí é que está meu problema).


Emir Neto

Emir Neto

Curtidas 0

Respostas

Borbatech

Borbatech

01/03/2004

Primeiro eu criei uma Procedure no Banco, ex
´´CREATE PROCEDURE SP_ESTOQUE RETURNS ( COD INTEGER)
AS
BEGIN
COD = GEN_ID(GEN_ESTOQUE,1);
SUSPEND;
END
´´
depois coloque um componete IBStoredProc na sua Unit e direcione para SP_ESTOQUE

para pegar o valor e o seguinte:
DM.QryESTOQUE.Append;
DM.IBTransaction1.StartTransaction; // Inicia transação
// Prepara para executar a Stored Procedure
if not SP_ESTOQUE.Prepared then
SP_ESTOQUE.Prepare;

// Executa
SP_ESTOQUE.ExecProc;

// Pega o valor do Generator
DM.QryESTOQUEPR_COD.Value := SP_ESTOQUE.ParamByName(´COD´).vALUE ;
LabelGen.Caption := IntToStr(IBStoredProc1.ParamByName(´VALOR_GENERATOR´).AsInteger);
DM.IBTransaction1.Commit; // Commit da transação

Valeu ..


GOSTEI 0
POSTAR