Complementando, filter é coisa do tempo do TTable, tente assim:
with dm.alunos do begin Close; SQL.Clear; SQL.Add( ' Select distinct on (alunos.aluno_codigo ) alunos.aluno_codigo, * from alunos ' ); SQL.Add( ' inner join contas_receber ' ); SQL.Add( ' on alunos.aluno_codigo=contas_receber.aluno_codigo ' ); SQL.Add( ' where contas_receber.receber_data_vencimento <= :Dt_Vencimento ' ); SQL.Add( ' and contas_receber.receber_pago = FALSE ' ); ParamByName( 'Dt_Vencimento' ).AsDateTime := (date - 5); Open; end; with dm.mensa do begin Close; SQL.Clear; SQL.Add( 'Select * from Tabela' ) SQL.Add( 'Where receber_pago = FALSE and receber_data_vencimento <= :Dt_Venc ' ); ParamByName( 'Dt_Vencimento' ).AsDateTime := (date - 5); Open; end; vc vai ver que vai ficar muito + rápido, lembrando que é só um exemplo, não conheço o seu sistema e nem o PostGree Em 26/01/08, edersonecris <[EMAIL PROTECTED]> escreveu: > > Mas e com o filter como eu faço? > > Eduardo Silva dos Santos escreveu: > > > > Se vc usar parâmetros no Seu SQL o zeos já converte o formato da Data.. > > fica muito mais simples. > > > > Em 25/01/08, edersonecris <[EMAIL PROTECTED]<edersonecris%40gmail.com> > > <mailto:edersonecris%40gmail.com>> escreveu: > > > > > > Aos colegas da lista que me ajudaram, agradeço muito. > > > Estava com problemas no filtros e nos sqls para filtrar datas do > > > postgres devido ao formato de armazenamento do mesmo. > > > Depois de vários colegas enviarem a sua opnião, consegui chegar a uma > > > solução simples graças a ajuda de vocês. > > > Como o Zeos tem um bug tive que fazer do seguinte modo: > > > > > > dm.alunos.sql.Clear; > > > dm.alunos.SQL.Text:='select distinct on > > > (alunos.aluno_codigo)alunos.aluno_codigo, * from alunos '+ > > > 'inner join contas_receber '+ > > > 'on alunos.aluno_codigo=contas_receber.aluno_codigo '+ > > > 'where contas_receber.receber_data_vencimento <= ' > > > + quotedstr(formatdatetime('yyyy/MM/dd',date - 5))+ > > > ' and contas_receber.receber_pago = FALSE'; > > > dm.alunos.Open; > > > > > > dm.mensa.Filter:= 'receber_pago = FALSE and receber_data_vencimento <= > > > ' + quotedstr(formatdatetime('yyyy/MM/dd',date - 5)); > > > dm.mensa.Filtered:=true; > > > > > > Problema resolvido, desse jeito eu posso continuar a usar o formato de > > > datas como YMD que é o recomendado e no meu sistema ele aparece como > DMY > > > tranquilo. > > > Vlw pessoal!!! > > > > > > -- > > > Éderson Cassiano Bologna > > > [EMAIL PROTECTED] <edersoncassiano%40terra.com.br> <mailto: > edersoncassiano%40terra.com.br> > > <edersoncassiano%40terra.com.br> > > > sKYPE: edersoncassiano > > > MSN: [EMAIL PROTECTED] <edersoncassiano%40hotmail.com> > > <mailto:edersoncassiano%40hotmail.com> <edersoncassiano%40hotmail.com> > > > www.microtechshop.com > > > > > > > > > > > > > -- > > ....................................................... > > Eduardo Silva dos Santos > > DRD Sistemas. > > (27) 3218-4201 > > MSN: [EMAIL PROTECTED] <eduardo.drd%40gmail.com> <mailto: > eduardo.drd%40gmail.com> > > Site: http://www.drdsistemas.com/ <http://www.drdsistemas.com/> > > ....................................................... > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > -- > Éderson Cassiano Bologna > [EMAIL PROTECTED] <edersoncassiano%40terra.com.br> > sKYPE: edersoncassiano > MSN: [EMAIL PROTECTED] <edersoncassiano%40hotmail.com> > www.microtechshop.com > > > -- ....................................................... Eduardo Silva dos Santos DRD Sistemas. (27) 3218-4201 MSN: [EMAIL PROTECTED] Site: http://www.drdsistemas.com/ ....................................................... [As partes desta mensagem que não continham texto foram removidas]