Fórum Como ver o valor do genreitor antes de se inclementado... #54060

03/12/2005

0

Exemplo: O genereitor ta com valor 10 se eu clicar ficará 11 mas antes de ficar 11 aparecerá o valor 11 num edit pos se eu de cancelada na inclusão de um novo registro o valor de genereitor não seja alterado..


Max.sgj

Max.sgj

Responder

Posts

03/12/2005

Bruno Belchior

O generator não está incluso no contexto de tranzação, logo mesmo se você tiver anulado a tranzação (rollback) o generator permanecerá da mesma forma que está... o que pode ser feito é retroagir o seu valor...
select Gen_Id(NomeGenerator, -1) from RDB$DataBase
ou então setá-lo para qualquer valor independente
set generator NomeGenerator to <VALOR>
Porém cuidado, em ambientes cliente-servidor com vários clientes simultâneos, essa técnica pode gerar uma violação de chave...


Responder

Gostei + 0

03/12/2005

Edilcimar

em princípio o gerador deve ser colocado após um append, ou seja na hora exata em que vc vai realmente incluir um registro, o número do gerador só não será reaproveitado se houver um problema com o bd na hora da inclusão do registro no bd, o que neste caso realmente a numeração iria ´pular´ a seqüência, mas se vc realmente quer basta pegar o número e jogar dentro de uma variável ou diretamente dentro de um edit qualquer


Responder

Gostei + 0

03/12/2005

Weber

select Gen_Id(NomeGenerator, 0) from RDB$DataBase



Responder

Gostei + 0

03/12/2005

Max.sgj

Eu adquiri este exemplo mas da erro...

IBTransaction1.StartTransaction;
if not IBStoredProc1.Prepared then
IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
Edit1.Text := IntToStr(IBStoredProc1.ParamByName(
´ATUAL´).AsInteger);
IBTransaction1.Commit;


Responder

Gostei + 0

03/12/2005

Bruno Belchior

ao invés de dar um ExecSQL dá um Open...


Responder

Gostei + 0

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

Aceitar