[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