ajuda delphi pesquisa

Delphi

02/10/2012

ola pessoal só novo aqui no forum e no delphi queria saber como faço para fazer uma colsulta...
tipo assim tenho um formulario de agenda de serviços e queria pesquisar qual o fucionario que realizou o serviço,sendo que
gostaria que aparecece no grid só os serviços que o fucionario realizou,
o meu banco de dados é o interbase
Glebson Guimaraes

Glebson Guimaraes

Curtidas 0

Respostas

Deivison Melo

Deivison Melo

02/10/2012

Aqui tem um exemplo usando webbroker, mas o conceito é o mesmo!

http://www.facunte.com.br/livros/dw7/livro_delphi_web_capitulo_7.pdf

Qualquer dúvida postar!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Sua dúvida é com relação a consulta (SQL) ou a programação no Delphi?
Poste a estrutura de suas tabelas.
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

minha duvida é na consulta sql
como fazer a consulta.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Bom, não conheço a estrutura das suas tabelas, mas a consulta não parece difícil, bastaria um select na tabela de serviços filtrando pelo funcionário, não?
SELECT *  FROM SERVICOS WHERE FUNCIONARIO = :valor
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012


HO EU FIZ ASSIM

procedure Tformagenda.Button2Click(Sender: TObject);
begin

DmDados.IBQueryAgenda.Close;
DmDados.IBQueryAgenda.ParamByName('Fuci_atend').AsString:='%'+Edit1.Text+'%';
DmDados.IBQueryAgenda.open;

end;

POREM NUM APARECE NADA QUANDO DIGITO NO EDIT E CLICO NO BUTTON2
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Como está o SQL da sua tabela?
A ideia é a seguinte, adequando a consulta à sua tabela:
procedure Tformagenda.Button2Click(Sender: TObject);
begin
DmDados.IBQueryAgenda.Close;
DmDados.IBQueryAgenda.SQL.Text := 'SELECT * FROM ATENDIMENTOS WHERE FUNCIONARIO= :fun';
DmDados.IBQueryAgenda.ParamByName('fun').AsString := Edit1.Text;
DmDados.IBQueryAgenda.open;
end;


Como você está usando um comparador de igualdade, não precisa dos "coringas" (%).
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

select * from AGENDA
where FUCIONA_ATENDENTE= :Fuci_atend;
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

ai amigao fiz assim

procedure Tformagenda.Button2Click(Sender: TObject);
begin

DmDados.IBQueryAgenda.Close;
DmDados.IBQueryAgenda.SQL.Text:= 'SELECT * AGENDA WHERE FUCIONA_ATENDENTE= : Fuci_anted';
DmDados.IBQueryAgenda.ParamByName('Fuci_anted').AsString:=Edit1.Text;
DmDados.IBQueryAgenda.open;

end;


daí da um erro 'IBQueryAgenda: Parameter 'fuci_atend' not found'
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Você separou os dois pontos (:) do nome do parâmetro, deve ficar junto.
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

da outro erro Dynamic error sql code = 104 lin,1
daquele outro jeito passa fica na linha debaixo
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Cara, tá faltando também o FROM (SELECT * FROM AGENDA...)
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

é eu vi ja coloquei
só que quando clico num acontece nada ta igual o outro
GOSTEI 0
Glebson Guimaraes

Glebson Guimaraes

02/10/2012

obrigado pela força kra deu certo sim,
eu tambem tinha colocado a função habilitar ou desabilitar datasource.
e dai nem precisa dizer o resto
kkk
rsrsrrs
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

02/10/2012

Ah ha, show de bola. Que bom que você conseguiu.
Grande abraço.
Estou encerrando o tópico.
GOSTEI 0
Alisson Santos

Alisson Santos

02/10/2012

procedure Tformagenda.Button2Click(Sender: TObject);
begin
with DmDados.IBQueryAgenda do
begin
   Close;
   Sql.Clear;
   Sql.Add('select * from agenda');
   Sql.Add('where FUCIONA_ATENDENTE = ' + Quoted(Edit1.Text));
   Open;
end;


Essa maneira não precisaria criar um parametro para ter o retorno.
GOSTEI 0
POSTAR