Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafa M.

pesquisa com datas...conexão ADO.. Access .. Delhpi 7

Recommended Posts

boa tarde pessoal!

 

eu tô com uma dúvida aqui na hora de fazer essas pesquisas ... já tentei várias sintaxes diferentes.. e no help do delphi num tem esse tipo de info..

 

eu usei os seguintes componentes pra fazer a conexão: TADOdataset (xamei de tabela) e TADOconnection (xamei de conexao)

 

 

eu queria fazer uma pesquisa que selecionasse os produtos que estão entra a data de hoje e daqui 30 dias... mas eu não sei se há possibilidade de se somar datas.. e também não achei a sintaxe correta pra data em SQL.. ele sempre dá erro na sintaxe..

 

ESTOQUE = nome da tabela

VAL = campo da tabela (tipo data - access .. não tem máscara)

today = é a função do delphi mesmo

 

 

Rotina Comentada

 

procedure TPrincipal.Button1Click(Sender: TObject);

var hoje:string[10]; ->>> não existe um tipo de variável pra time/date?

begin

if validade.Checked=true then

begin

hoje:=DateToStr(today);

estoque.tabela.close;

estoque.tabela.CommandText:=('select * from estoque where "+hoje+" = val - 30'); -->> completamente errado =/

estoque.tabela.open;

edit1.Text:=estoque.tabela.fieldbyname('nome').AsString; ---> exibição do nome, só pra teste

end;

 

 

 

 

 

 

Muito obrigado pessoal!!! abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiramente boa noite...

var hoje:string[10]; ->>> não existe um tipo de variável pra time/date?

R.: Sim, existe o TDateTime... mas é melhor utilizar String com o ACCESS...

estoque.tabela.CommandText:=('select * from estoque where "+hoje+" = val - 30'); -->> completamente errado =/

R.: Sim, está Errado mesmo...Pois sua consulta está ficando assim por exemplo...Select * from estoque Where 22/02/2007 = val -30Você poderia fazer assim...
estoque.tabela.CommandText: 'Select * from estoque Where "nomedocampodata" between '+QuotedStr(hoje)+' and 'QuotedStr(IncMonth(hoje)));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Axo q issu pode resolver seu problema ..... fiz com SQL Server 2000 e funfa ....

Espero q lhe ajude ...

 

procedure TForm1.Button1Click(Sender: TObject);var  DataHoje, DataInicial: TDate;begin  DataHoje:= Date;  DataInicial:= DataHoje - 30;  with qry do  begin	Close;	Sql.Clear;	Sql.Add('SELECT * FROM ESTOQUE');	Sql.Add('WHERE DATA_ENTRADA BETWEEN :DataIni AND :DataHoje');	Parameters.ParamByName('DataIni').Value:= FormatDateTime('yyyy/mm/dd', DataInicial);	Parameters.ParamByName('DataHoje').Value:= FormatDateTime('yyyy/mm/dd', DataHoje);	Open;  end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia fazer assim...

estoque.tabela.CommandText: 'Select * from estoque Where "nomedocampodata" between '+QuotedStr(hoje)+' and 'QuotedStr(IncMonth(hoje)));
cara.. valeu mesmo a ajuda.. só que quando eu fui testar aqui... o compilador achou um erro... falo que era esperado um ")" but found QuotedStr =/ ... e o cursor fico parado logo depois do AND... tentei arrumar.. mas num funfou.. alguma idéia?

fiz com SQL Server 2000 e funfa ....Espero q lhe ajude ...

brigadão aajudaaa cara.. mas não sei se foi por isso.. também num deu.. dá um erro no delphi na hora de compilar... eu coloquei o componente query e renomeie direitinhu... só que ele diz não achar o parametro da data inicial.. apesar dele estar logo ali =/se você tiver alguma luz sobre isso.. me dá um toke plis... eu vô tentar fazer algo parecido com o q vcs mandaram.. vamos ver se consigo !!abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.