Consulta Query X Table

Delphi

19/10/2006

Boa noite meus colegas,

Vejam só.
Numa query para pesquisar por registros que apresentem uma determinada informação com uma determinada data eu estou usando a seguinte instrução:

*************************************************************
procedure TLocConsultas_.OkClick(Sender: TObject);
Var
Inicio: String;
begin
Inicio := DateToStr(DataI.Date);

dm_.QryConsultas.Close;
dm_.QryConsultas.SQL.Clear;
dm_.QryConsultas.SQL.Text := (´Select * from Consultas WHERE CL_NOME = :iPaciente and (CL_DATA = :pInicial) ORDER BY CL_DATA´);
dm_.QryConsultas.ParamByName(´iPaciente´).AsString := LocPac .Text;
dm_.QryConsultas.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
dm_.QryConsultas.Prepare;
dm_.QryConsultas.Open;

Rel_FichaConsulta_ := TRel_FichaConsulta_.Create(Application);
Rel_FichaConsulta_.QrpFichaConsulta.Preview;
end;


==> Onde, Início é uma caixa onde digito a data a ser pesquisada e LocPac é o Edit onde digito o nome do Paciente que estou procurando. Obs, tem que ser as duas informações dentro do mesmo registro.
*************************************************************
Mas demora muito para localizar...

Sei que se eu fizer com uma Table, o resultado é mais rápido.
Como ficaria a instrução acima, aplicada a uma Table?

Sei que posso contar com vcs sempre.


Beijinhos...


Anjinho Loiro

Anjinho Loiro

Curtidas 0

Respostas

Joaoshi

Joaoshi

19/10/2006

Colega,

Um caminho seria na Table colocar a proprieda Filtered = true e no evento OnFilterRecord coloque o Accept de acordo com a concição que deseja.

Espero ter ajudado.


GOSTEI 0
Anjinho Loiro

Anjinho Loiro

19/10/2006

E em termos de código, alguém tem alguma coisa para sugerir.

Beijinhos...


GOSTEI 0
Anjinho Loiro

Anjinho Loiro

19/10/2006

Sobe


GOSTEI 0
Anjinho Loiro

Anjinho Loiro

19/10/2006

SOBE


GOSTEI 0
Joaoshi

Joaoshi

19/10/2006

Colega,

No evento onFilterRecord da Table

Accept := (SuaTabela.FieldByName(´Cliente´).asString = ´1´) or
(SuaTabela.FieldByName(´Cliente´).asString = ´´);

Não esqueça de indicar Filtered = True

Espero ter ajudado.


GOSTEI 0
Rinez

Rinez

19/10/2006

Há necessidade de verificar os campos da tabela. Já tive o mesmo problema com campos blob chamados em memo. Resolvi chamando somente o campo ID e NomeCliente depois coloquei botão para verificar o conteúdo do Blob e coloquei em memo, usando query mesmo e ficou super rápido. Agora Paradox não dá, principalmente em rede, aconselho Firebird.
Abraços
Prof. Zenir


GOSTEI 0
POSTAR