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

Fazer Uma Consulta Para Repetir O Campo De Um Registro


mcsmarmcs

Pergunta

Possuo vários registros, o campo ordem e o campo placa possuem o conteúdo repetido algumas vezes e o campo data é o que difere os ordens que são repetidos.

Exemplo do que preciso fazer:

Registro 1: Campo ordem - conteúdo: 'abc' / Campo placa - conteúdo: 'LBA2020' / Campo data - conteúdo: '01/02/2000'

Registro 2: Campo ordem - conteúdo: 'btc' / Campo placa - conteúdo: 'BKA1028' / Campo data - conteúdo: '01/02/2000'

Registro 3: Campo ordem - conteúdo: 'abc' / Campo placa - conteúdo: 'LBA2020' / Campo data - conteúdo: '05/12/2002'

Ao inserir o registro 3, o campo placa possui o mesmo conteúdo do registro 1. O que eu gostaria de fazer é: ao digitar o campo ordem em um campo edit, se o conteúdo deste campo existir eu pego automaticamente o campo placa e digito uma nova data.

Mas eu preciso pegar o último registro com este campo ordem e o parâmetro para isso seria a data do registro.

Estou usando o MySQL 5 e componente ADOQuery.

Todos os parâmetros são passados para o banco através de campos e edit e possuo um DBGrid para listar os registros.

Estou com muita dificuldade em resolver isso, alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
O que eu gostaria de fazer é: ao digitar o campo ordem em um campo edit, se o conteúdo deste campo existir eu pego automaticamente o campo placa e digito uma nova data.

Mas eu preciso pegar o último registro com este campo ordem e o parâmetro para isso seria a data do registro.

mcsmarmcs, faça uma consulta (query) no OnExit do Edit de modo a localizar o registro, passando como parâmetro da consulta (a utilizar na cláusula where) o texto digitado. Essa sua consulta deve ordenar o resultado pela data em questão. Daí não tem erro, se você ordena ascendente, basta posicionar no último registro (last) da consulta; se você ordena decrescentemente, basta pegar o primeiro item da consulta.

Link para o comentário
Compartilhar em outros sites

  • 0
Como faço esse parâmetro de receber o último registro?

Pode me dar um exemplo amigo?

Vou tentar, afinal, você não colocou nome de tabelas e campos necessários (ainda não desenvolví o 6º sentido ;)).

Vou supor que seu componente TQuery, utilizado na consulta, receberá em design-time o texto da consulta SQL em sua propriedade SQL. Sua consulta SQL deve ser algo mais ou menos assim:

SELECT ordem, placa, data
FROM nome_tabela
WHERE ordem = :ordem
ORDER BY data DESC
ordenado pela data em ordem decrescente.
procedure TForm1Edit1Exit(Sender :TObject);
begin
  QryConsulta.Close;
  QryConsulta.ParamByName('ordem').AsString := Edit1.Text;
  QryConsulta.Open;
 // ao abrir a consulta, se não estiver vazia, o primeiro registro será o último 
 // registro cadastrado - lembre-se que a ordenação é decrescente
  if not QryConsulta.EOF then
    EditPlaca.Text := QryConsultaplaca.AsString;
   ... // outros campos se houverem
  begin
  end;
end;

se você adicionou os campos da consulta em design-time, então utiliza o campo diretamente. Mas, se não adicionou, então utiliza o método FieldByname. Ex., ao invés de utilizar: QryConsultaplaca.AsString, você utiliza QryConsulta.FieldByName('placa').AsString;

Abraços

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...