Posicionar no Dbgrid
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
- 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
Curtidas 0
Respostas
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:
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
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 ??
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
26/12/2003
não, sempre trara um codigo novo. Existem outras maneiras, mass considero essa a + segura.
GOSTEI 0
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
E muito obrigada pela dica.
Martinham
GOSTEI 0