Buscar

Conversão de datas

Código

{neste programa estou determinando quais campos da Query eh char, integer e datatime, convertendo data que digitamos no edit para pesquisar no banco}
{foi colocado um combobox e na propriedade  items coloquei os nomes que aparecem para o cliente selecionar. Num listBox mesma propriedade coloquei os campos da tabela (propriedade visible true). num Edit digitava o valor. Botão Adicionar para jogar os dados do combo e edit num outro listbox(propriedade visible true)

procedure TForm1.btnAdicionarClick(Sender: TObject);
begin
  listBox1.Items.Add(ComboBox1.Text+'='+Edit4.Text);
  campos.Add(ListBox2.Items.Strings[ComboBox1.ItemIndex]);
  valores.Add(Edit4.Text);
  listBox4.Items.Assign(campos);
  listBox5.Items.Assign(valores);
end;

procedure TForm1.btnConsultarClick(Sender: TObject);
 var i :integer;
 var dia, mes, ano, data, hora : string;
begin
  qryConsulta.sql.Clear;
  qryConsulta.sql.add ('select distinct campo '+
                                  'from tabela');
  qryConsulta.sql.add ('where 1=1');
  qryConsulta.Prepare;
  qryConsulta.open;

   for i:=0 to ListBox1.Items.Count-1 do
    begin
     if (listbox4.Items [I] = 'campo')then// campos char
      begin
         qryConsulta.sql.add('and '+ campos.Strings[i] +' like ''%'+ valores.Strings[i] +'%''');
      end
      else
      if (listbox4.Items [I] = 'campo') then //campos integer
          begin
           qryConsulta.sql.add('and '+ campos.Strings[i] +' = '+ valores.Strings[i]);
          end
          else
           if (listbox4.Items [I] = 'campo') then //campos datatime
              begin
              if copy(valores.Strings[i],3,1)= '/' then
               begin
                dia := copy(valores.Strings[i],1,2);
                mes := copy(valores.Strings[i],4,2);
                ano := copy(valores.Strings[i],7,4);
                hora:= copy(valores.Strings[i],12,5);
                data := ano +'-' + mes + '-' + dia + ' ' + hora;
               end;
                valores.Strings[i]:= data;

               qryConsulta.sql.add ('and '+ campos.Strings[i] + ' = '+#39+ valores.Strings[i]+#39); //#39 como se fosse '
       end;
    qryConsulta.Open;
    memo1.text := qryConsulta.SQL.Text;// somente para ver se o sql esta executando.
    end;
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Data e hora
Adicionada dia: 22/05/07
Por: Elin Cristini Casagrande
Visualizada: 20219 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009