Fórum Varias Consultas num unico evento de um unico componente #234288

25/05/2004

0

Oi galera do Forum, mais uma vez recorro a generosidade de voces para pedir uma grande ajuda.
Estou fazendo um aplicativo em delphi com acess e usando a paleta ADO para me conectar ao bd. Como não tenho muita experiencia em delphi optei por um codigo mais extenso porem mais facil de ser entendido . Bom, vamos a minha duvida.
Tenho um form com 4 panel´s, no primeiro faço uma consulta na tabela Fornecedores para buscar o cliente que inicie com as letras digitadas num edit. Até ai funciona perfeitamente...
Eu implementei um pouco mais o código de forma que ao ir digitando o nome do cliente no edit alem de ir buscando na tabela fornecedor o mesmo tambem fosse sendo feitas duas consultas na tabela caixa onde cada resposta à consulta é feita em um panel diferente (usei 2 querys diferentes para uma mesma tabela para ficar mais facil eu entender). O código segue abaixo:

procedure TFrmCaixa.Edit3Change(Sender: TObject);
var tam, tar, ta: integer;
begin
If (edit3.Text <>´´) then
Begin
DModul.QForn.Close;
DModul.QForn.SQL.Clear;
tam := length(edit3.Text);
DModul.QForn.SQL.Text:=´Select * from Fornecedores WHERE mid(RazaoSocial,1,´+IntToStr(tam)+´) = ´´´+edit3.Text+´´´ ´;
DModul.QForn.Open;
end;

If (edit3.Text <>´´) then
begin
DModul.QCaixa.Close;
DModul.QCaixa.SQL.Clear;
tar := length(dbedit27.Text);
DModul.QCaixa.SQL.Text:=´Select * from Caixa where mid(Fornecedor,1,´ +InttoStr(tar)+´) = ´´´+dbedit27.Text+´´´ ´;
DModul.QCaixa.Open;
end;

If(edit3.Text <>´´) then
begin
DModul.QCaixa2.Close;
DModul.QCaixa2.SQL.Clear;
ta := length(dbedit27.Text);
DModul.QCaixa2.SQL.Text:=´Select * from Caixa where mid(Fornecedor,1,´ +InttoStr(ta)+´) = ´´´+dbedit27.Text+´´´ ´;
DModul.QCaixa2.Open;
end;
end;

procedure TFrmCaixa.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:= caFree;
end;

procedure TFrmCaixa.FormShow(Sender: TObject);
begin
maskedit1.text := DateToStr(Date + 60);
maskedit2.text := DateToStr(Date + 30);
end;

end.

Ele esta funcionando perfeitamente, o que eu gostaria de saber é como colocar parametros neste codigo. Ex. Nesta parte do codigo:

If(edit3.Text <>´´) then
begin
DModul.QCaixa2.Close;
DModul.QCaixa2.SQL.Clear;
ta := length(dbedit27.Text);
DModul.QCaixa2.SQL.Text:=´Select * from Caixa where mid(Fornecedor,1,´ +InttoStr(ta)+´) = ´´´+dbedit27.Text+´´´ ´;
// Colocar um parametro para que a data de vencimento seje menor ou igual ao maskedit1.text;
//Colocar um segundo parametro para que a data de pagamento seje igual a nulo;
// e assim por diante;
DModul.QCaixa2.Open;
end;

Alguem poderia me ajudar? Se puder ficarei muito grata. :roll: :roll:


Flavia_mococa

Flavia_mococa

Responder

Posts

25/05/2004

Paulo_amorim

Olá

É aconselhavel que voce utilize SQL.Add ( ... ), e não SQL.Text := ...

Isso porque vc pode colocar vários ADD...

Então, vc poderia fazer:

with Query.SQL do
begin
  Add(select * from tabela);
  Add (where condicao1 = ...);
  Add ( and condicao2 = ...) ;
  Add ( and condicaoN = ...);
end;


Assim vc pode colocar quantas condições precisar


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar