Duvidas em SQL / Delphi

17/03/2006

Pessoal, preciso fazer uma consulta em sql dentro do delphi, como faço?
Tipo, tenho um form com um grid e um botao de pesquisa e um edit...

queria tipo por um select no botao de pesquisa, tipo:
select * from fornecedores where id_forn = edit1.text

Como faço isso?
Valeu pessoal.


Ricieri

Respostas

17/03/2006

Robotpost

Amigo, use a seguinte SQL em sua query ou dataset:

Select * from fornecedores
where id_fornecedor =:id_fornecedor

No evento onClick do botão coloque:

query.close;
query.parameters.parambyname(´id_fornecedor´).value:= edit1.text
query.open;

Assim, ele tratá o resultado de acordo com o ID do fornecedor que vc digitar no edit.

Abraços!!!

Fernando


Responder Citar

18/03/2006

Ricieri

Entao meu amigo, só mais uma duvida:
tipo, nesta mesma tela eu tenho o cadastro do fornecedor.
se eu colocar este select dentro da query, ele não vai dar pal na hora de cadastrar?

eu queria aprender a fazer o select dentro do codigo do delphi
como faço?
alguem poderia explicar? grato.


Responder Citar

18/03/2006

Paullsoftware

você usa a mesma query para cadastrar e fazer pesquisas?
é melhor vc usar uma query a parte para fazer a pesquisa, ou então ter um controle na propriedade SQL da sua query mais/mesnos assim:

Query.Sql = 
 0 - Linha  = Select * From Tabela
 1 - Linha  = Where codigo>0 //para mostrar todos os registros
 2 - Linha  = Order by Nome // para ordenar os dados pelo nome

na hora de fazer uma consulta vc faz.
ao invés de ser assim:
Select * from fornecedores 
where id_fornecedor =:id_fornecedor 

faz assim:
No evento onClick do botão coloque:

query.close; 
query.parameters.parambyname(´wCod´).value:= edit1.text; 
query.open;


[b:0c3bd4da4e]**[/b:0c3bd4da4e]normalmente uso SQL puro para incluir/excluir/atualizar/pesquisar ou qq outra rotina na base, não tesei o código, mais assim deve funcionar... qq coisa post o resultado! :wink:


Responder Citar

18/03/2006

Ricieri

me desculpe o incomodo, mais sou novato.
tipo, eu vou usar 2 querys no mesmo form. como vou tratar na hora de cadastrar e na hr de consultar?


Responder Citar

18/03/2006

Paullsoftware

Qual banco vc usa?


Responder Citar

18/03/2006

Ricieri

Interbase


Responder Citar

18/03/2006

Paullsoftware

você faz a conexão por componentes nativos (paleta Interbase) ou usa DbExpress?

se usa nativos experimente usar IbDataSet é mais simples do que query e pode ser feito assim na hora de pesquisar...

por padrão vc pode setar a propriedade Select SQL para ficar assim
Select * From Tabela
Where Codigo > 0
Order by Codigo

na hora de pesqusar vc pode apenas mudar a segunda linha assim:
Tabela.Close;
Tabela.SelectSQL[1]:=´Where Codigo=:wID´;
Tabela.ParamByName(´wID´).AsInteger := StrToInt(EditPesquisa.Text);
Tabela.Open;
e funciona perfeitamente :wink:


Responder Citar

18/03/2006

Weber

Acho que é isto que você está buscando

Query1.SQL.Clear;
Query1.SQL.Add(´Select * From Cadastro´);
Query1.SQL.Add(´Where cad_codigo = ´+Trim(Edit1.Text));
Query1.Open;



Responder Citar

18/03/2006

Ricieri

Valeu pessoal, mto obrigado mesmo!!
estou mto grato. vou testar!


Responder Citar