Array
(
)

Duvidas em SQL / Delphi

Ricieri
   - 17 mar 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.


Robotpost
   - 17 mar 2006

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


Ricieri
   - 18 mar 2006

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.


Paullsoftware
   - 18 mar 2006

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:

#Código

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:
#Código

Select * from fornecedores
where id_fornecedor =:id_fornecedor

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

#Código

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


**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:


Ricieri
   - 18 mar 2006

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?


Paullsoftware
   - 18 mar 2006

Qual banco vc usa?


Ricieri
   - 18 mar 2006

Interbase


Paullsoftware
   - 18 mar 2006

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
#Código


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:


Weber
   - 18 mar 2006

Acho que é isto que você está buscando

#Código

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



Ricieri
   - 18 mar 2006

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