Pesquisa (Query) no Firebird
Amigos,
Tenho uma tabela chamada [color=red:6edcc34c40]Pessoas[/color:6edcc34c40] e existe nela um campo chamado [color=green:6edcc34c40]Nome[/color:6edcc34c40] como eu faço para assim que o usuário vai escrevendo no edit ele va pesquisando no campo nome o texto digitado?
Uso Firebird e tenho os seguintes componentes:
[b:6edcc34c40]MDODatabase
MDOTransaction
MDODataset
MDoMisc
DataSource
MDOQuery[/b:6edcc34c40]
Como eu faria essa query funcionar ? Preciso de algum componente a mais , como funcionaria ?
Valeu
Tenho uma tabela chamada [color=red:6edcc34c40]Pessoas[/color:6edcc34c40] e existe nela um campo chamado [color=green:6edcc34c40]Nome[/color:6edcc34c40] como eu faço para assim que o usuário vai escrevendo no edit ele va pesquisando no campo nome o texto digitado?
Uso Firebird e tenho os seguintes componentes:
[b:6edcc34c40]MDODatabase
MDOTransaction
MDODataset
MDoMisc
DataSource
MDOQuery[/b:6edcc34c40]
Como eu faria essa query funcionar ? Preciso de algum componente a mais , como funcionaria ?
Valeu
Koringa
Curtidas 0
Respostas
Vinicius2k
16/06/2004
koringa,
se vc quiser ir pesquisando (localizando) sem filtro use o método locate, mas é lento em tabelas grandes... algo assim :
mas se o que vc quer é um filtro na tabela, vc pode fazer a assim :
instrução SQL da Query :
e no OnChange do Edit :
o uso dos [b:859f48168d]¬[/b:859f48168d] é o indicador de qual parte não importa no filtro... ¬Texto¬ -> Conté o Texto em quaquer parte , ¬Texto -> Terminado com o texto e Texto¬ -> iniciado com o Texto...
note que isso também é lento em tabelas um pouco maiores... o ideal é que vc faça isso no click de um botão ´pesquisar´, por exemplo...
Espero ter ajudado...
T+
se vc quiser ir pesquisando (localizando) sem filtro use o método locate, mas é lento em tabelas grandes... algo assim :
Query.Locate(´NOME´,Edit1.Text,[LoPartialKey]);
mas se o que vc quer é um filtro na tabela, vc pode fazer a assim :
instrução SQL da Query :
select * from PESSOAS where NOME like :pnome
e no OnChange do Edit :
with Query do begin Close; ParamByName(´pnome´).AsString:= ´¬´ + Edit1.Text + ´¬´ Open; end;
o uso dos [b:859f48168d]¬[/b:859f48168d] é o indicador de qual parte não importa no filtro... ¬Texto¬ -> Conté o Texto em quaquer parte , ¬Texto -> Terminado com o texto e Texto¬ -> iniciado com o Texto...
note que isso também é lento em tabelas um pouco maiores... o ideal é que vc faça isso no click de um botão ´pesquisar´, por exemplo...
Espero ter ajudado...
T+
GOSTEI 0
Koringa
16/06/2004
koringa,
se vc quiser ir pesquisando (localizando) sem filtro use o método locate, mas é lento em tabelas grandes... algo assim :
mas se o que vc quer é um filtro na tabela, vc pode fazer a assim :
instrução SQL da Query :
e no OnChange do Edit :
o uso dos [b:7c4b335112]¬[/b:7c4b335112] é o indicador de qual parte não importa no filtro... ¬Texto¬ -> Conté o Texto em quaquer parte , ¬Texto -> Terminado com o texto e Texto¬ -> iniciado com o Texto...
note que isso também é lento em tabelas um pouco maiores... o ideal é que vc faça isso no click de um botão ´pesquisar´, por exemplo...
Espero ter ajudado...
T+
Query.Locate(´NOME´,Edit1.Text,[LoPartialKey]);
select * from PESSOAS where NOME like :pnome
with Query do begin Close; ParamByName(´pnome´).AsString:= ´¬´ + Edit1.Text + ´¬´ Open; end;
Se eu tento o [b:7c4b335112]
Query.Locate(´NOME´,Edit1.Text,[LoPartialKey]);
[/b:7c4b335112] da erro no [color=red:7c4b335112]LoPartialKey[/color:7c4b335112] da erro como se não estivesse declarado e ja chegou a aparecer incompatible types LoPartialKey and integer;
GOSTEI 0
Vinicius2k
16/06/2004
Perdõe-me... acresceste à lista de uses a unit [b:6e6a01c5a5]DB[/b:6e6a01c5a5], que é aonde se encontra a definição do tipo TLocateOptions...
T+
T+
GOSTEI 0
Koringa
16/06/2004
Perdõe-me... acresceste à lista de uses a unit [b:d54dbc1c09]DB[/b:d54dbc1c09], que é aonde se encontra a definição do tipo TLocateOptions...
T+
Te agradeco vinicius é isso ai :D
GOSTEI 0
Marfred
16/06/2004
Olá kra !!
poderia me ajudar a usar o MDO com Firebird ? (uso delphi 7 e fireebird 1.5).....
Eu to conectado usando o mdodatabase... conectei e até aí normal...
no datamodule eu tenho o mdo database, mdotransaction e mdoquerys...
mas o q eu uso pra fazer as manutencoes nas tabelas ?!
eu quero usar mdoquery... como faco para os dbcontrols ficarem ativos para insercoes e alteracoes ? tenho q colocar um mdoupdatesql para cada query ?!
pra q serve o mdodataset ?!!!
qual deles tem a melhor performance ?
Falow mocada !!!
poderia me ajudar a usar o MDO com Firebird ? (uso delphi 7 e fireebird 1.5).....
Eu to conectado usando o mdodatabase... conectei e até aí normal...
no datamodule eu tenho o mdo database, mdotransaction e mdoquerys...
mas o q eu uso pra fazer as manutencoes nas tabelas ?!
eu quero usar mdoquery... como faco para os dbcontrols ficarem ativos para insercoes e alteracoes ? tenho q colocar um mdoupdatesql para cada query ?!
pra q serve o mdodataset ?!!!
qual deles tem a melhor performance ?
Falow mocada !!!
GOSTEI 0
Macario
16/06/2004
Amigos,
Tenho uma tabela chamada [color=red:28d306198b]Pessoas[/color:28d306198b] e existe nela um campo chamado [color=green:28d306198b]Nome[/color:28d306198b] como eu faço para assim que o usuário vai escrevendo no edit ele va pesquisando no campo nome o texto digitado?
Ola programador, boa tarde 8) .
Apenas fazendo uma sugestão, escolha este metodo
[color=red:28d306198b]select * from PESSOAS where NOME like :pnome[/color:28d306198b]
mas sem fazer pelo Onchange, a nao ser que voce tenha uma infra-estrutura de rede muito boa (ou poucos terminais).
pois isso aumentaria o trafego na rede.
:roll:
GOSTEI 0
Endel
16/06/2004
EU GOSTARIA DE SABER .........
Se eu posso fazer uma pergunta aqui sobre o assunto , porem do meu caso em especial ?
Se eu posso fazer uma pergunta aqui sobre o assunto , porem do meu caso em especial ?
GOSTEI 0