Considere o código referente à procura de dados em uma tabe...
procedure TSearchDemo.SearchExactClick(Sender: TObject); begin Table1.SetKey; Table1.Fields[0].AsString : Edit1.Text; (* Table1.Fieldbyname(‘Cidade’) : Edit1.Text *) Table1.GoToKey; end;
O procedimento acima pode ser substituído por:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: B - procedure TSearchDemo.SearchExactClick(Sender: TObject); begin Table1.FindKey([Edit1.text]); end;
Para compreender a questão e a resposta correta, é necessário entender como o Delphi lida com a procura de dados em tabelas de banco de dados. A questão apresenta um trecho de código que visa localizar um registro exato com base em um valor fornecido pelo usuário, que é obtido pelo campo de edição Edit1.Text
.
O método original no código da questão utiliza uma abordagem de preparar uma chave com SetKey
, atribuir o valor do campo de texto ao primeiro campo da tabela e depois utilizar GoToKey
para tentar posicionar o cursor do dataset no registro correspondente à chave definida.
A substituição proposta pela alternativa correta simplifica o procedimento ao usar o método FindKey
. Este método recebe diretamente um array com os valores das chaves e tenta localizar a correspondência na tabela de forma mais direta e concisa, sem a necessidade de preparar a chave e de chamar um segundo método para efetuar a busca.
O método FindKey
é uma funcionalidade de alto nível fornecida por componentes de acesso a banco de dados em Delphi, como TTable, que permite buscar rapidamente por registros que correspondam a um conjunto específico de valores de chave. Se um registro correspondente for encontrado, o cursor do dataset é posicionado neste registro, e o método retorna True
; caso contrário, retorna False
.
É importante destacar que o conhecimento das diversas funções e métodos que componentes de banco de dados fornecem é essencial para resolver esse tipo de questão de concurso público. A resposta correta demonstra uma compreensão de como realizar buscas eficientes em tabelas usando o Delphi.
Assim, a alternativa B está correta porque propõe uma maneira eficiente e simplificada de procurar um registro exato em uma tabela, que é adequada para a funcionalidade descrita no código fornecido na questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo