DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Fórum DevMedia


Autor
Mensagem
Diego Macario
 


País: Brasil
Estado: MG
Cidade: Juatuba
Mensagens: 91
 Postado em: 12/1/2011 09:36:25 AM
 
Bom Dia
Tenho uma duvida, qual seria o melhor meio para poder permitir que um usuario realize visualizacao de dados por periodo?

Seria o seguinte, gostaria de criar um menu para estipular um numero para ver determinada data, ou seja, a data atual mais o somatorio daquele numero....
por exemplo
eu coloco que quero ser avisado com 5 dias de atencedencia...
hoje é dia 12/01/2011 e ai me mostraria coisas a vencer no dia 17/01/2011
como faria isso?
uso banco de dados firebird e delphi 7
obrigado

Junior Miranda
 


País: Brasil
Estado: BA
Cidade: Feira de Santana
Mensagens: 192
 Postado em: 12/1/2011 11:25:13 AM
 
#Código
SELECT *  FROM RDB$DATABASE
WHERE
   CURRENT_DATE + 5 ==> parâmetro (CURRENT_DATE + :NDIAS)


[]'s

Junior Miranda
 


País: Brasil
Estado: BA
Cidade: Feira de Santana
Mensagens: 192
 Postado em: 12/1/2011 11:26:43 AM
 
corrigindo...

#Código
SELECT *  FROM RDB$DATABASE
WHERE
   CAMPO = CURRENT_DATE + 5 ==> parâmetro (CURRENT_DATE + :NDIAS)


[]'s

Rodrigo de Carvalho Santos
 


País: Brasil
Estado: MG
Cidade: São João del-Rei
Mensagens: 10
 Postado em: 12/1/2011 01:47:16 PM
 
Amigo, boa tarde!

Bem pelo que entendi você precisa fazer isso direto no seu código em delphi.

Então, tente o seguinte:

#Código
var
  datalimite: TDateTime;
  sqltxt: TStringBuilder;
begin
  //neste ponto seria bom vc fazer um tratamento de erros tb para não pegar valores inválidos
  datalimite:= TDateTime + strtoint(edit1.text); //número de dias que você quer adicionar

  //monta a query para pesquisar, aqui vou pegar da tabela contas todos os campos
  sqltxt:= TStringBuider.create;
  sqltxt.append('select * from contas where data_vencimento >= ');
  sqltxt.append(quotedstr(datetostr(now)));
  sqltxt.append( and data_vencimento <= );
  sqltxt.append(quotedstr(datetostr(dataLimite+1)));

  //aqui suponha que temos um componente sqlQuery no form
  sqlQuery.close;
  sqlQuery.sql.clear;
  sqlQuery.sql.add(sqltxt.tostring);
  sqlQuery.open;

end;



Espero ter ajudado;
Att

Diego Macario
 


País: Brasil
Estado: MG
Cidade: Juatuba
Mensagens: 91
 Postado em: 12/1/2011 03:04:59 PM
 


Citação:
corrigindo...

#Código
SELECT *  FROM RDB$DATABASE
WHERE
   CAMPO = CURRENT_DATE + 5 ==> parâmetro (CURRENT_DATE + :NDIAS)


[]'s

 
 

Amigo obrigado, irei testar!

Diego Macario
 


País: Brasil
Estado: MG
Cidade: Juatuba
Mensagens: 91
 Postado em: 12/1/2011 03:10:07 PM
 


Citação:
Amigo, boa tarde!

Bem pelo que entendi você precisa fazer isso direto no seu código em delphi.

Então, tente o seguinte:

#Código
var
  datalimite: TDateTime;
  sqltxt: TStringBuilder;
begin
  //neste ponto seria bom vc fazer um tratamento de erros tb para não pegar valores inválidos
  datalimite:= TDateTime + strtoint(edit1.text); //número de dias que você quer adicionar

  //monta a query para pesquisar, aqui vou pegar da tabela contas todos os campos
  sqltxt:= TStringBuider.create;
  sqltxt.append('select * from contas where data_vencimento >= ');
  sqltxt.append(quotedstr(datetostr(now)));
  sqltxt.append( and data_vencimento <= );
  sqltxt.append(quotedstr(datetostr(dataLimite+1)));

  //aqui suponha que temos um componente sqlQuery no form
  sqlQuery.close;
  sqlQuery.sql.clear;
  sqlQuery.sql.add(sqltxt.tostring);
  sqlQuery.open;

end;



Espero ter ajudado;
Att

 
 

pq a datalimite mais 1?
amigo obrigado tambem pela ajuda

Rodrigo de Carvalho Santos
 


País: Brasil
Estado: MG
Cidade: São João del-Rei
Mensagens: 10
 Postado em: 13/1/2011 12:34:16 AM
 
No meu caso aqui, quando coloco somente a dataLimite ele não inclui o último dia na pesquisa.

Mais uma coisa, no post anterior quando escrevi:

datalimite:= TDateTime + strtoint(edit1.text); //número de dias que você quer adicionar

TDateTime é a data inicial que você quer usar, por exemplo:

dataLimite:= now + strtoint(edit1.text);

Diego Macario
 


País: Brasil
Estado: MG
Cidade: Juatuba
Mensagens: 91
 Postado em: 13/1/2011 09:25:55 AM
 


Citação:
No meu caso aqui, quando coloco somente a dataLimite ele não inclui o último dia na pesquisa.

Mais uma coisa, no post anterior quando escrevi:

datalimite:= TDateTime + strtoint(edit1.text); //número de dias que você quer adicionar

TDateTime é a data inicial que você quer usar, por exemplo:

dataLimite:= now + strtoint(edit1.text);

 
 


Muito obrigado pelo esclarecimento
Abraço

Diego Macario
 


País: Brasil
Estado: MG
Cidade: Juatuba
Mensagens: 91
 Postado em: 19/3/2011 09:17:47 AM
 
olha tentei realizar esta pesquisa por data

mas nao esta dando certo....

quero o seguinte, fiz com base no sql do firebird

eu pego um valor de um integer de um arquivo ini

e ai pego a data corrente...e rodo o banco procurando na data final

sendo assim

procuro que a data final esteja entre o valores da data atual e a data atual mais o valor do ini

ou seja

data atual < data corrente < data atual mais o ini

entende?

vlw

web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03