Fórum Consulta IBQuery #196843
24/11/2003
0
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
Curtir tópico
+ 0Posts
24/11/2003
Dr. Interbase
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
Gostei + 0
24/11/2003
Celsoctorres
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.
Gostei + 0
26/11/2003
Celsoctorres
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)