Posicionar no Dbgrid

Delphi

26/12/2003

Tenho um form:
- um grid que está associado ao DataSource da Tabela de Cidades, q atraves do Query faço um select e ele traz todos as linha da tabela.
- um botao INCLUSAO, para adicionar um novo registro.

No form da INCLUSÃO, uso como chave primária um campo cujo valor é gerado pelo GENERATOR do Interbase. Faço o comando sql da inclusao da seguinte forma:

insert into cidade (codigo,nome)
values(gen_id(gera_codigo,1), :nomecid)

Até aqui funciona direitinho.
Gostaria de q quando voltasse para o form onde tem o grid, ele posicionasse no registro que acabou de ser incluído ... Como consigo obter o valor da chave primária q foi gerado automaticamente e para depois dar um locate na query do dbgrid ??

No aguardo.
Martinham


Martinham

Martinham

Curtidas 0

Respostas

Pain_elemental

Pain_elemental

26/12/2003

1. crie uma stored procedure que retorna o gen id
2. faca um select nessa procedure antes de inserir e guarde o retorno do select em uma variavel
3. troque gen_id(gera_codigo,1) por um parametro e sete ele para o valor q vc acabou de pegar
4. use a variavel para o q vc kiser.

:twisted:


GOSTEI 0
Martinham

Martinham

26/12/2003

É somente desta forma q conseguirei o codigo gerado ??
Qdo dois usuarios tentarem simultaneamente gravar o registro, e eu buscar a informacao pela procedure, ele nao trara para mim o mesmo registro ??


GOSTEI 0
Pain_elemental

Pain_elemental

26/12/2003

não, sempre trara um codigo novo. Existem outras maneiras, mass considero essa a + segura.


GOSTEI 0
Martinham

Martinham

26/12/2003

Voce poderia me dar mais detalhes de como seria esta stored procedure e como chamá-la ??? Não domino muito ainda esta parte da sp ... :-) :-)

E muito obrigada pela dica.
Martinham


GOSTEI 0
POSTAR