Fórum Consulta IBQuery #196843

24/11/2003

0

Olá pessoal,

estou desenvolvendo um projeto em delphi e preciso fazer algumas consultas, uso o Interbase como banco de dados, a minha intenção de consulta é a seguinte:

Tenho um form de cadastro ex:(Frm_cadcli)//clientes, neste mesmo form tem um botão para fazer pesquisa que abre outro form ex:(frm_conclie)//consulta clientes, neste form (frm_concli) tenho um dbgrid e um edit e um radiogroup, para escolher o tipo de consulta que gostaria de fazer ex:(cliente, cidade, contato), escolhido o tipo de consulta começo a digitar e em tempo real vai me mostrando no dbgrid tudo que estiver cadastrado com a letra que estou digitando no edit, até aqui perfeito eu consigo fazer, mas assim que eu achar meu cliente eu preciso editar ele, como para fazer esta consulta uso um IBQuery ligado ao dbgrid não consigo que o cliente encontrado fique aparecendo na form de cadastro (frm_cadcli), já tentei várias maneiras, abaixo os códigos que uso atualmente para fazer consulta em orçamentos:

procedure Filtro_Con_Sod;
var
filtro1:string;
filtro2:string;
begin
with Con_geral do
begin
if RadioButton1.Checked = true then
filtro1:=´CLIENTE´;
if RadioButton2.Checked = true then
filtro1:=´SODN´;
if RadioButton3.Checked = true then
filtro1:=´PRODUTO´;
if RadioButton4.Checked = true then
filtro2:=´CLIENTE´;
if RadioButton5.Checked = true then
filtro2:=´SODN´;
if RadioButton6.Checked = true then
filtro2:=´PRODUTO´;
if (edconsulta.Text <> ´´) and (edcliente.Text <> ´´) then
begin
DBGrid1.DataSource:= dm1.DSProcSod;
dm1.IBQRProcSod.Active:=false;
dm1.IBQRProcSod.SQL.Clear;
dm1.IBQRProcSod.SQL.Add(´select SODN, SODREV, CLIENTE, PRODUTO, ONDEESTA from FRSOD where upper(´+ filtro1 +´)like:PRCLI and upper(´+ filtro2 +´)like:PRARQ´);
dm1.IBQRProcSod.Params[0].AsString:=´¬´ + Con_geral.edconsulta.Text + ´¬´;
dm1.IBQRProcSod.Params[1].AsString:=´¬´ + Con_geral.edcliente.Text + ´¬´;
dm1.IBQRProcSod.Active:=true;
end;
if edconsulta.Text <> ´´ then
begin
dBGrid1.DataSource:= dm1.DSProcSod;
dm1.IBQRProcSod.Active:=false;
dm1.IBQRProcSod.SQL.Clear;
dm1.IBQRProcSod.SQL.Add(´Select SODN, SODREV, CLIENTE, PRODUTO, ONDEESTA from FRSOD where upper(´+ filtro1 +´)like:PRCLI´);
dm1.IBQRProcSod.Params[0].AsString:=´¬´ + Con_geral.edconsulta.Text + ´¬´;
dm1.IBQRProcSod.Active:=true;
end;
if edcliente.Text <> ´´ then
begin
DBGrid1.DataSource:= dm1.DSProcSod;
dm1.IBQRProcSod.Active:=false;
dm1.IBQRProcSod.SQL.Clear;
dm1.IBQRProcSod.SQL.Add(´Select SODN, SODREV, CLIENTE, PRODUTO, ONDEESTA from FRSOD where upper(´+ filtro2 +´)like:PRCLI´);
dm1.IBQRProcSod.Params[0].AsString:=´¬´ + Con_geral.edcliente.Text + ´¬´;
dm1.IBQRProcSod.Active:=true;
end;
end;
end;

Obrigado a todos!


Celsoctorres

Celsoctorres

Responder

Posts

24/11/2003

Dr. Interbase

Celso

Se Você está usando dbedits no form de cadastro, utilize o datasource deles o mesmo do grid desta forma quando você sair do dbgrid, o registro será mostrado no form de cadastro

Sds


Responder

Gostei + 0

24/11/2003

Celsoctorres

Dr. Interbase,

bom, como disse eu já tinha feito antes em tempo de execução, mudo a propriedade datasource dos dbedits para a IBQuery e em tempo real consigo ver eles, porém se eu precisar editar um valor não vou conseguir pois estes devem estar ligados com o datasource da ibtable.


Responder

Gostei + 0

26/11/2003

Celsoctorres

Alguém sabe?


Responder

Gostei + 0

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

Aceitar