Removendo Mascara em Consulta

Delphi

25/09/2010

Olá estou com o seguinte problema aqui no sistema o sistema grava na sua base dessa forma (099)9999-9999 por exemplo tenho q remover esse (099) para q o sistema possa fazer a pesquiza por o campo telefone corretamente...

minha consulta esta dessa forma:

  if key = #13 then
  begin
      frmmodulo.qrcliente.close;
      frmmodulo.qrcliente.sql.clear;
      frmmodulo.qrcliente.sql.add('select * from c000007 where telefone1 = '''+edittelefone.text+''' order by nome');
      frmmodulo.qrcliente.open;
      if frmmodulo.qrcliente.RecNo = 1 then
      begin
        editCliente.text  := frmmodulo.qrcliente.fieldbyname('codigo').asstring;
        enomecliente.text := frmmodulo.qrcliente.fieldbyname('nome').asstring;
        editCliente.SetFocus;
      end
      else
      begin
        ShowMessage('Registro não encontrado!');
        enomecliente.text := '';
        editCliente.SetFocus;
        editCliente.SelectAll;
      end;
    end

porem teria q remover o (099) para q a consulta funcione corretamente pois o cliente so vai digitar os ultimos digitos 9999-9999 para a pesquiza...
Laelson Fagundes

Laelson Fagundes

Curtidas 0

Respostas

William Galleti

William Galleti

25/09/2010

Olá estou com o seguinte problema aqui no sistema o sistema grava na sua base dessa forma (099)9999-9999 por exemplo tenho q remover esse (099) para q o sistema possa fazer a pesquiza por o campo telefone corretamente...

minha consulta esta dessa forma:

  if key = #13 then
  begin
      frmmodulo.qrcliente.close;
      frmmodulo.qrcliente.sql.clear;
      frmmodulo.qrcliente.sql.add('select * from c000007 where telefone1 = '''+edittelefone.text+''' order by nome');
      frmmodulo.qrcliente.open;
      if frmmodulo.qrcliente.RecNo = 1 then
      begin
        editCliente.text  := frmmodulo.qrcliente.fieldbyname('codigo').asstring;
        enomecliente.text := frmmodulo.qrcliente.fieldbyname('nome').asstring;
        editCliente.SetFocus;
      end
      else
      begin
        ShowMessage('Registro não encontrado!');
        enomecliente.text := '';
        editCliente.SetFocus;
        editCliente.SelectAll;
      end;
    end

porem teria q remover o (099) para q a consulta funcione corretamente pois o cliente so vai digitar os ultimos digitos 9999-9999 para a pesquiza...
Bom dia Laelson!   Que Banco de dados que é? Qual o tipo do campo telefone1   Acho que você pode utilizar coringas!   só mudar uma linha do seu código.   frmmodulo.qrcliente.sql.add('select * from c000007 where telefone1 = '+QuotedStr('%'+edittelefone.text)+' order by nome'); Ah, prefiro utilizar o quotedstr para facilitar o código.... O coringa "%" indiqua qualquer valor, então, no código acima você esta dizendo qualquer valor + o campo edit.   Veja se funciona dessa maneira.   Espero ter ajudado!
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

25/09/2010

etou usando firebird e campo é varchar (20)

eu ja testei com coringa mas nao funcionou ainda....
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

25/09/2010

Opa invés do igual não vai o Like? frmmodulo.qrcliente.sql.add('select * from c000007 where telefone1 Like '+QuotedStr('%'+edittelefone.text)+' order by nome');
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

25/09/2010

era ezatamento isso q estava faltando eu tinha feito a troca e deu certo...

vlw
GOSTEI 0
POSTAR