Fórum Auto incremento no Firebird, mas no código. #217532

01/03/2004

0

:?: :?: 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

Responder

Posts

01/03/2004

Borbatech

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 ..


Responder

Gostei + 0

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

Aceitar