Consulta Query X Table
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...
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
Curtidas 0
Respostas
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.
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
19/10/2006
E em termos de código, alguém tem alguma coisa para sugerir.
Beijinhos...
Beijinhos...
GOSTEI 0
Anjinho Loiro
19/10/2006
Sobe
GOSTEI 0
Anjinho Loiro
19/10/2006
SOBE
GOSTEI 0
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.
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
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
Abraços
Prof. Zenir
GOSTEI 0