Como ver o valor do genreitor antes de se inclementado...
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
Curtidas 0
Respostas
Bruno Belchior
03/12/2005
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...ou então setá-lo para qualquer valor independentePorém cuidado, em ambientes cliente-servidor com vários clientes simultâneos, essa técnica pode gerar uma violação de chave...
select Gen_Id(NomeGenerator, -1) from RDB$DataBase
set generator NomeGenerator to <VALOR>
GOSTEI 0
Edilcimar
03/12/2005
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
GOSTEI 0
Weber
03/12/2005
select Gen_Id(NomeGenerator, 0) from RDB$DataBase
GOSTEI 0
Max.sgj
03/12/2005
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;
IBTransaction1.StartTransaction;
if not IBStoredProc1.Prepared then
IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
Edit1.Text := IntToStr(IBStoredProc1.ParamByName(
´ATUAL´).AsInteger);
IBTransaction1.Commit;
GOSTEI 0
Bruno Belchior
03/12/2005
ao invés de dar um ExecSQL dá um Open...
GOSTEI 0