[firebase-br] Auto Imcremento no FireBird e DB Express

Diego Seleguim seleguim em gmail.com
Ter Set 11 21:24:59 -03 2007


Em 11/09/07, Magno Machado<magnomp.gprs em gmail.com> escreveu:
> Eu tenho um generator que é chamado automaticamente pela aplicação(não uso
> nada de triggers ou stored procedures para isso)
>
> É uma rotina generica que tenho. No BeforePost de um dataset, eu incremento
> um generator chamado GE_NOME-DA-TABELA e atribuo seu valor ao à chave.

CREATE PROCEDURE GERAIDCIDADE
RETURNS (
    ID INTEGER)
AS
DECLARE VARIABLE VID INTEGER;
BEGIN

  SELECT
    MAX(CIDADE.IDCIDADE) FROM CIDADE
  INTO
    :VID;

    IF (VID IS NULL) THEN
      VID = 0;

  ID = VID + 1;
  SUSPEND;
END

Estou usando este código mas creio que ele também retorne ID's iguais
em 2 transações ao mesmo tempo!




Mais detalhes sobre a lista de discussão lista