Ir para conteúdo
Fórum Script Brasil
  • 0

Dbgrid


AlexBEE

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

uma vez que seu DBGrid está ligado a uma tabela ou query, você deve utilizar um dos métodos de posicionamento de registros destes componentes para que a respectiva linha no DBGrid seja selecionada.

No caso de TTable poderia ser através de Locate, FindKey (se não me engano) e para o TQuery seria Locate.

Link para o comentário
Compartilhar em outros sites

  • 0

Ola, eu não entendi direito a sua resposta, vou tentar explicar melhor!!!!!!!

O meu DbGrid esta ligado a um DataSource que respetivamente esse DataSource esta ligada a um SQLClientDataSet que esta ligada ao BANCO de Dados!!!!!!!!

Se você pudesse expricar melhor eu gostaria!!!!!

OBRIGADO PELA RESPOSTA IMEDIATA!!!!!!!

OBRIGADO

ALEXANGELO

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos ver se consigo melhorar a resposta.

Cada linha do DBGrid corresponde a um registro do seu SQLClientDataSet (a maior parte dos componentes de acesso a tabelas em banco, descendem de TDataSet, acredito que seja o mesmo caso para SQLClientDataSet). Assim, cada vez que você mover uma posição no seu SQLClientDataSet (através de Next ou Prior) você notará que o registro selecionado no DBGrid acompanhará a movimentação.

Como você disse que gostaria de posicionar a seleção em uma determinada linha no DBGrid, suponho que você saiba, de alguma forma, para qual linha você deseja ir. Eu imagino que seja baseado no valor de algum campo, então você poderia tentar o seguinte: SQLClientDataSet.Locate('CODIGO', Codigo, []);

onde considero que a busca seja pelo campo 'CODIGO', com o valor Codigo e a busca deve ser pelo valor exato [].

Dê uma espiada no help sobre a função Locate. (principalmente se utilizar mais de um campo para a busca)

Link para o comentário
Compartilhar em outros sites

  • 0

OK

Isso eu já tinha tentado, so que so tem um problema eu não tenho chave primaria nessa tabela, então eu não tenho uma Codigo que daria para seguir.

Eu estava procurando uma função que eu pudesse selecionar uma linha tipo assim: DbGrid.Linha[Numero da linha], ou alguma coisa parecida.

Para selecionar uma coluna eu consegui dessa forma so que selecionar uma linha eu não achei nada!!!!!!

Obrigado pela resposta, so que tem como fazer o que você disse sem um ID_COGIDO sequencial para seguir???

Link para o comentário
Compartilhar em outros sites

  • 0

A função Locate não exige um índice.

De qualquer forma, para o seu caso, parece-me que você possa fazer algo como:

procedure TForm1.PosicionaLinha(NumLinha :integer);
begin
  SQLClientDataSet.DisableControls;
  SQLClientDataSet.First;
  while NumLinha > 0 do
  begin
    SQLClientDataSet.Next;
    Dec(NumLinha);
  end;
  SQLClientDataSet.EnableControls;
end;

e então chamar de algum lugar.

Obs: o DisableControls, caso você não o tenha utilizado antes, evita que o DBGrid seja atualizado enquanto você está movendo o cursor da sua consulta.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...