Fórum SQL Duvida em pesquisa #421759
16/08/2012
0
dmdados2.ADOQuerygravacao2.Close;
dmdados2.ADOQuerygravacao2.sql.clear;
dmdados2.ADOQuerygravacao2.SQL.Add(select * from gravacao );
dmdados2.ADOQuerygravacao2.SQL.Add ( where nome=:nome and data>=:data1 and data<=:data2);
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(nome).Value:=edit5.Text;
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data1).Value:=strTodate(Edit3.Text);
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data2).Value:=strTodate(Edit4.Text);
dmdados2.ADOQuerygravacao2.open;
Gabriel Soares
Curtir tópico
+ 0Posts
16/08/2012
Bruno Leandro
Gostei + 0
16/08/2012
Gabriel Soares
Ele filtra o Nome, e data não:
Nome> Fulano > Data inicial 12/02/2012 > Data Final 16/02/2012
estou querendo filtrar todos dados com o fulano nesse intervalo de data
mas meu código está pegando o nome > Fulano e só o dia 12 e o dia 16, não está pegando o mes nem o ano
fica assim
nome | data ini | data fin |
fulano | 12/01/2009 | 16/02/2012....
e assim por diante.
Gostei + 0
16/08/2012
Douglas Michelino
var
wdata_inicio,wdata_fim:string;
begin
dmdados2.ADOQuerygravacao2.Close;
dmdados2.ADOQuerygravacao2.sql.clear;
dmdados2.ADOQuerygravacao2.SQL.Add(select * from gravacao );
dmdados2.ADOQuerygravacao2.SQL.Add ( where data between :data1 and :data2 );
dmdados2.ADOQuerygravacao2.SQL.Add ( and nome = :nome );
wdata_inicio:=copy(edit3.text,4,2)+'/'+copy(edit3.text,1,2)+'/'+copy(edit3.text,7,4);
wdata_fim:=copy(edit4.text,4,2)+'/'+copy(edit4.text,1,2)+'/'+copy(edit4.text,7,4);
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data1).Value:=wdata_inicio;
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data2).Value:=wdata_fim;
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(nome).Value:=edit5.Text;
dmdados2.ADOQuerygravacao2.open;
Gostei + 0
16/08/2012
Gabriel Soares
Vou tentar outro jeito...
está dando a mesma coisa...
não está filtrando a data...
só filtra o nome, a data continua sem filtrar..
vlw galera
Gostei + 0
16/08/2012
Gabriel Soares
Vou tentar outro jeito...
está dando a mesma coisa...
não está filtrando a data...
só filtra o nome, a data continua sem filtrar..
vlw galera
Gostei + 0
16/08/2012
William
Qual o tipo desse campo no banco de dados(date, datetime, varchar)?
Gostei + 0
17/08/2012
Gabriel Soares
o campo o do tipo : date
Gostei + 0
17/08/2012
Romulo Contro
passei por isso em sql server, e fiz uma gambiarra mais ou menos assim:
print - http://puu.sh/WdI5
a explicação disso aí é a seguinte... to pegando o texto do meu Edit, convertendo pra datetime, e depois dando um format passando pra string de novo no formato que eu quero... e o QuotedStr coloca a data entre aspas pra mandar o comando pro banco...
tenta fazer algo semelhante pra ver se não da certo!
abraço!
Gostei + 0
17/08/2012
Gabriel Soares
2/2/2012 À 2/8/2012
agora se eu colocar
20/2/2012 à 20/8/2012
ele puxa todos os dados com o nome filtrado, mas com todas as datas
será que é um problema de conversão de string para date no edit
coloquei 2 DateTimerPicker na data inicial e data final, passando o valor para um edit
Edit3.Text := DateToStr(DateTimePicker2.Date);
Estou proximo de encontrar o erro
vlw mais uma vez pela atenção de todos
Gostei + 0
18/08/2012
William
//Ajusta o formato das datas
dt1 := formatdatetime('mm/dd/yyyy', DateTimePicker1.Date);
dt2 := formatdatetime('mm/dd/yyyy', DateTimePicker2.Date);
dmdados2.ADOQuerygravacao2.Close;
dmdados2.ADOQuerygravacao2.sql.clear;
dmdados2.ADOQuerygravacao2.SQL.Add(select * from gravacao );
dmdados2.ADOQuerygravacao2.SQL.Add ( where nome=:nome and data>=:data1 and data<=:data2);
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(nome).Value:=edit5.Text;
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data1).Value:= '#' + dt1 + '#'; //O Access tem essas frescuras de usar #
dmdados2.ADOQuerygravacao2.Parameters.ParamByName(data2).Value:= '#' + dt2 + '#'; O Access tem essas frescuras de usar #
dmdados2.ADOQuerygravacao2.open;
Testa se não der certo avisa que vamos encontrar a solução.
Gostei + 0
19/08/2012
Bruno Leandro
ShortDateFormat <> 'dd/MM/yyyy'
para configurar eh no painel de controle / regiao e idioma / formatos de datas abreviadas / e configurar para dd/MM/aaaa
Gostei + 0
20/08/2012
Romulo Contro
eu sugeri vc formatar a data daquele jeito lá pq pode ser que tá filtrando o mês ao invés do dia... faz o teste de filtrar um dia 12 e um dia 13 pra ver... se no 12 der certo e no 13 não, creio que é o formato da data mesmo... se não, aí nao sei.
Gostei + 0
20/08/2012
Gabriel Soares
caiu minha ficha que no PC que estava funcionando o programa, estava cadastrando com o formato da data diferente daquele que meu PC estava...
O programa já funciona faz 2 anos, mas o cliente solicitou uma atualização, que o formato de data do meu O.S difere da data do Sistema dele, tudo resolvido graças o despertar de vcs, esqueci de pensar na lógica, agradeço a todos pela paciência de responder
begin
if combobox2.text='Nome' then
begin
dmdados2.ADOQuerygravacao2.Close;
dmdados2.ADOQuerygravacao2.sql.clear;
dmdados2.ADOQuerygravacao2.SQL.Add('select * from tabela' );
dmdados2.ADOQuerygravacao2.SQL.Add ( 'where fulano=:fulano and data>=:data1 and data<=:data2');
dmdados2.ADOQuerygravacao2.Parameters.ParamByName('fulano').Value:= edit5.Text;
dmdados2.ADOQuerygravacao2.Parameters.ParamByName('data1').Value:=strtodate (Edit3.Text);
dmdados2.ADOQuerygravacao2.Parameters.ParamByName('data2').Value:=strtodate (edit5.Text);
dmdados2.ADOQuerygravacao2.sql.Add('order by data');
dmdados2.ADOQuerygravacao2.open;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)