Fórum Consulta Locate #339681
31/03/2007
0
Estou precisando de uma dica de como posso localizar dentro de uma tabela um registro levando em consideração que serão informados o nome de uma pessoa, uma data e um horário e o(s) registro(s) localizado(s) tem(êm) que atender aos três critérios de consulta.
Estou usando um componente Table da paleta BDE do Delphi 7.
Um beijão turma, e já agradeço pelas dicas.
Bye.
Anjinho Loiro
Curtir tópico
+ 0Posts
31/03/2007
Titanius
Tabel1.Locate(´NOME;DATA;HORARIO´, VarArrayOf([´nome da pessoa´,´11/01/2007´, ´11:11:11´]), [loCaseInsensitive]);
Talvez seja preciso incluir o Variants, no uses do form.
[]s
Gostei + 0
31/03/2007
Peninha
Gostei + 0
01/04/2007
Adriano Santos
Veja se não é mais apropriado pra sua aplicação utilizar TQuery ao invés de TTable e fazer Selects no banco retornando os regitros que deseja.
Gostei + 0
02/04/2007
Anjinho Loiro
Bjs..
Gostei + 0
02/04/2007
Adriano Santos
[list:293e5d1157]
[*:293e5d1157] 1. Adicione um TQuery no seu form e linke-o ao seu TDatabases.
[*:293e5d1157] 2. Em sua propriedade SQL digite sua consulta, algo como: SELECT * FROM CLIENTES WHERE NOME = :MEU_PARAMETRO;
[*:293e5d1157] 3. O código ficaria algo como:
procedure TForm1.Button1Click(Sender: TObject); begin with MeuQuery do begin Close; ParamByName(´MEU_PARAMETRO´).AsString := Edit1.Text; Open; if IsEmpty then MessageDlg(´Cliente não encontrado.´, mtInformation, [mbOK], 0); end; end;
[/list:u:293e5d1157]
Gostei + 0
02/04/2007
Martins
Bjs..[/quote:8851af9d01]
Concordo com o [b:8851af9d01]Adriano[/b:8851af9d01], seria melhor vc pensar em usar [b:8851af9d01]TQuery[/b:8851af9d01], e aproveitando a deixa ficará melhor para vc quando tiver q optar por um banco q use SQL de forma mais dinâmica.
Sem Delphi aqui no Cyber fica complicado para testar, mas vamos lá.
Usando Query ficaria +/- assim.
Query1.Close; Query1.Sql.Clear; Query1.Sql.Add(´Select * from Tabela Where Nome = :pNome and Data =:pData and Hora = :pHora ´); Query1.Sql.ParamByName(´pNome´).AsString := dbNome.Text; Query1.Sql.ParamByName(´pData´).AsDate := StrToDate(dbData.Text); Query1.Sql.ParamByName(´pHora´).AsTime := StrToTime(dbHora.Text); Query1.Open;
Boa sorte.
Gostei + 0
02/04/2007
Martins
[list:3d904a6ab0]
[*:3d904a6ab0] 1. Adicione um TQuery no seu form e linke-o ao seu TDatabases.
[*:3d904a6ab0] 2. Em sua propriedade SQL digite sua consulta, algo como: SELECT * FROM CLIENTES WHERE NOME = :MEU_PARAMETRO;
[*:3d904a6ab0] 3. O código ficaria algo como:
procedure TForm1.Button1Click(Sender: TObject); begin with MeuQuery do begin Close; ParamByName(´MEU_PARAMETRO´).AsString := Edit1.Text; Open; if IsEmpty then MessageDlg(´Cliente não encontrado.´, mtInformation, [mbOK], 0); end; end;
[/list:u:3d904a6ab0][/quote:3d904a6ab0]
[b:3d904a6ab0]Adriano[/b:3d904a6ab0] postei quase junto com vc, dá uma corrigida na dica q eu postei.
Abraço.
Gostei + 0
02/04/2007
Adriano Santos
Tah certinho irmão, não tem o que corrigir. A única diferença é que no seu caso vc colocou tudo dinâmico, inclive a montagem da select o que eu tb costumo fazer. :D
Gostei + 0
02/04/2007
Anjinho Loiro
Mas ainda sim, agradeço o empenho de todos.
(ainda continuo esperando).
Bjs.
Gostei + 0
03/04/2007
Adriano Santos
Gostei + 0
03/04/2007
Anjinho Loiro
Obrigado pelo apoio.
bjs.
Gostei + 0
03/04/2007
Adriano Santos
Gostei + 0
04/04/2007
Martins
Tabel1.Locate(´NOME;DATA;HORARIO´, VarArrayOf([´nome da pessoa´,´11/01/2007´, ´11:11:11´]), [loCaseInsensitive]);
Boa sorte!
Gostei + 0
05/05/2008
Pro-luck
Vi a dica que vc mandou para a Anjinho loiro, e gostaria de saber duas coisas, 1-) Nesta dica é possível colocar em ordem alfabética o resultado desejado?; 2-) Ele retira da ´exibição´ os registros que não atendem aos critérios informados?
Tb tenho esta curiosidade com o Table...
Com Query é show, com excessão do fato de que quando colocamos em ordem alfabética, perdemos a propriedade de edição dos registros. Resumindo, preciso deste resultado que a Query fornece com a possibilidade de editar os dados.
Caro amigo, desde já agradeço e fique com Deus...
Gostei + 0
08/05/2008
Badboysjc
Caro Adriano, Bom Dia !!
Aproveitando a carona, com o SELECT, eu estou com a seguinte dúvida:
1. Como faço para exibir o resultado da pesquisa no GRID por exemplo com esta QUERY ( com exemplo postado, não esta aparecendo o resultado no meu grid, só quando o cliente´não é localizado fornece a mensagem)
2. E estou apanhando do código abaixo. O objetivo é quando não localizar o cliente dar a opção para o cliente cadastrar o cliente.
Segue o meu código abaixo.
with DMConsulta.sqlqryClientes do
begin
Close;
ParamByName(´PCPF´).AsString := edtCPF.Text;
Open;
if IsEmpty then
Begin
If MessageBox(handle,´O CPF informado não foi localizado, deseja Cadastrar agora?´,´Confirmação´, MB_ICONQUESTION + MB_YESNO) = ID_YES Then
close;
frmClientes.ShowModal;
frmClientes.btnCadastrar.Click;
end;
Agradeço desde já.
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)