Selecionar ID DBGrid

08/03/2013

7

Boa tarde,
Como meu faço pra recuperar o ID de uma linha selecionada no GRID ?
Responder

Posts

08/03/2013

Luiz Menin

Explique melhor seu problema, qual versão do delphi e componentes utilizados.
Responder

08/03/2013

Felipe Ribeiro

Então, vamos lá, perdoe a falta de informação.

Tenho um DBGrid com as informações proveniente da seguinte consulta ao banco:


Select
    c.cod_cliente,
    c.nome as nome,
    c.endereco as endereco,
    c.cidade as cidade,
    c.bairro as bairro,
    e.nome as estado

from clientes c
left join estados e on e.id_estado = c.estado



Quando dou DoubleClick em uma linha do grid, abro um outro form com as informações do cliente selecionado para edição.
Como esse Select não é de uma única tabela, não está me permitindo editar os campos.

A solução que eu pensei foi pegar o ID do cliente selecionado e então preparar um insert manual ao invés de utilizar o mesmo DataSource do grid.

Essa seria a melhor forma de resolver isso ?

Espero ter conseguido ser claro ao expressar o meu problema.

Obrigado
Responder

08/03/2013

Luiz Menin

Ok.
O código do registro selecionado estaria no ClientDataSet relacionado ao DataSource do DBGrid.
iCod := ClientDataSet.FieldByName('NOME_DO_CAMPO').AsInteger;


Na tela que vai abrir, você aplica um filtro em que só retorna o registro deste código.

Responder

08/03/2013

Felipe Ribeiro

Boaaa 06...

Exatamente o que eu precisava..

Estou há algum tempo sem utilizar o Delphi.
E vamos começar a dar manutenção em um sistema que foi desenvolvido em Delphi.
Então estou voltando a estudar.

Muito obrigado..

Grande abraço.
Responder

08/03/2013

Luiz Menin

Ótimo. Obrigado pelo feedback.
Responder
dbgrib.Columns[0].Field.AsString onde o "0" zero na verdade trata-se do index dos campos (sequencia deles na consulta) ou vc poderá utilizar o nome da coluna também.

dbgrib.Columns.Fieldbyname('nomedocampo').AsString

PS. a segunda sintaxe pode nao está escrita correta devido não está com o delphi e nao ter ele aqui no trabalho!

abraço!!
Responder

08/03/2013

Joel Rodrigues

Bom, galera... vejo que a questão foi resolvida.
Nesse caso, estou marcando o tópico como Concluído.
Abraço.
Responder