Rafa M. 0 Denunciar post Postado Fevereiro 22, 2007 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
Hugo Slepicka 0 Denunciar post Postado Fevereiro 22, 2007 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
Rodrigo Miss 1 Denunciar post Postado Fevereiro 22, 2007 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
Rafa M. 0 Denunciar post Postado Fevereiro 23, 2007 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
marcio.theis 3 Denunciar post Postado Fevereiro 23, 2007 Pode fazer usando somente comando SQL do SQLServer, tipo: SELECT *FROM ESTOQUEWHERE DATA_ENTRADA BETWEEN getDate() and (getDate() + 30) Compartilhar este post Link para o post Compartilhar em outros sites