Ir para conteúdo
Fórum Script Brasil
  • 0

Select No Banco Com Like


Pu££3y

Pergunta

Aii galera tenho um Duvida na Hora de fazer o seguinte comando SQL:

SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao

FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa

WHERE pessoa.nome LIKE ':parameto';

mais Na Hora de atribuir esse valor para a query:

Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE :parameto');

não tem Como colocar as aspas simples LIKE ':parameto';

Como faço pra fazer o Comando tipo

select * from pessoa where nome like 'pulley'; lá No delphi????

Flwss galera esperanduuu Valeuuu Abraçosss.... ahh URGENTE se não Toh No SAL...

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
não tem Como colocar as aspas simples LIKE ':parameto';
Pu££3y, se você vai passar este valor por parâmetro, só o que você precisa é fazer algo assim:

  Q_pessoa.Close;
  Q_pessoa.SQL.Clear;
  Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE :parameto');
  Q_pessoa.ParamByName('parametro').AsString := 'pulley';
  Q_pessoa.Open;

as aspas vão ficar por conta do drive na hora que enviar a consulta para o banco.

Era isso?

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

não pois O valor Eu Recebo De Um edit

O valor Texto que o cara digita no edit pego no Evento OnKeyPress pra fazer um filtro tipo uma Busca....

procedure Tlist_cli.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

DataSource1.DataSet.Close;

DataModule2.Q_pessoa.SQL.Clear;

DataModule2.Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE :filtro');

DataModule2.Q_pessoa.Parameters.ParamByName('filtro').Value:=edit1.Text;

ShowMessage(DataModule2.Q_pessoa.SQL.Text);

DataModule2.Q_pessoa.ExecSQL;

DataSource1.DataSet.Open;

end;

não Funcionou daquela Maneira.....

Tem Outro jeitO?????

Link para o comentário
Compartilhar em outros sites

  • 0

Pu££3y, duas observações:

1) você deverá utilizar o método Open e não ExecSQL. Este último você utiliza com comandos do tipos INSERT, DELETE em seu comando SQL.

de: DataModule2.Q_pessoa.ExecSQL;

para: DataModule2.Q_pessoa.Open;

2) Não tenho certeza, mas sempre que não defino o parâmetro em design-time, eu passo ele para a query com AsString e não Value.

de: DataModule2.Q_pessoa.Parameters.ParamByName('filtro').Value:=edit1.Text;

para: DataModule2.Q_pessoa.Parameters.ParamByName('filtro').AsString:=edit1.Text;

Link para o comentário
Compartilhar em outros sites

  • 0

DataModule2.Q_pessoa.Parameters.ParamByName('filtro').AsString:=edit1.Text;

não Compila ...

A PArte do execSQL nem Tinha Me Ligado .... faço Outas Consultas Usando O OPEn só que Nessa Me esqueci...

você Disse que fica Por Conta Do Drive Tem que Instalar AlGum Componete Adicional???

Tem Como Inserir Por Codigo ASCI tipo #31 que é o enter qual é o Do ASpas simples????

... Ow já Toh viajando D+

Link para o comentário
Compartilhar em outros sites

  • 0

DataModule2.Q_pessoa.Parameters.ParamByName('filtro').AsString:=edit1.Text;

não Compila ...

uhmm. Estamos falando do componente TQuery? Qual a mensagem do compilador?

Tem Como Inserir Por Codigo ASCI tipo #31 que é o enter qual é o Do ASpas simples????

Em todos os casos, se você abandonar a idéia do parâmetro (eu particularmente prefiro esta opção), você pode concatenar a string utilizando a função QuotedStr:

 ...
  DataModule2.Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE ' +QuotedStr(edit1.Text);
  DataModule2.Q_pessoa.Open;

Se não estou enganado é assim.

você Disse que fica Por Conta Do Drive Tem que Instalar AlGum Componete Adicional???
Não. Quiz dizer o driver da BDE.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

BLZZ VOh dá Uma Olhada NAunTinah Pensado Em cocatenar direto

Mais Tambem Encontrei Uma Maneira.... Olha só

DataModule2.Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE :filtro');

e na Hora de atribuir O valor Do Parameto

DataModule2.Q_pessoa.Parameters.ParamByName('filtro').Value:='%'+edit1.Text+'%';

O Percent faz o Papel De Aspas Simples......

resolveu Direitinho......

valeu entaumm MICHEUS Abraçossss.....

Link para o comentário
Compartilhar em outros sites

  • 0

BLZZ VOh dá Uma Olhada NAunTinah Pensado Em cocatenar direto

Mais Tambem Encontrei Uma Maneira.... Olha só

DataModule2.Q_pessoa.SQL.Add('SELECT pessoa.*, cliente.limite, cliente.data_cad, cliente.situacao FROM pessoa INNER JOIN cliente ON pessoa.cod_pessoa = cliente.cod_pessoa WHERE pessoa.nome LIKE :filtro');

e na Hora de atribuir O valor Do Parameto

DataModule2.Q_pessoa.Parameters.ParamByName('filtro').Value:='%'+edit1.Text+'%';

O Percent faz o Papel De Aspas Simples......

não é bem assim. O % significa que seu like encontrará todas as pessoas que tiverem o conteúdo em edit1.text em qualquer posição do nome.

Ex.:

MARIA JOSEFA

JOSE ANTONIO

se você procurar por JOSE, vão aparecer os dois.

Se você quer que aparece todos que começam com JOSE, você concatenaria o último % apenas. Já se quizesse que terminasse com JOSE, concatenaria o primeiro.

Que componente você utiliza para a consulta. Se fosse TQuery, a propriedade seria Params (não parameters).

Qual foi a mensagem do compilador no erro do post anterior?

Link para o comentário
Compartilhar em outros sites

  • 0

beleza valeu Pela Correção....

Por Isso que eu Buscava e aparecia Alguns Clientes Indesejados.....

Procurei a Propiedade Params E não Tem Uso a ADOQuery...

só tem Parameters Msmo

A mensagem é essa

[Error] Unit11.pas(39): Undeclared identifier: 'AsString'

Acho que não existe esse Metodo....

Link para o comentário
Compartilhar em outros sites

  • 0

beleza valeu Pela Correção....

Por Isso que eu Buscava e aparecia Alguns Clientes Indesejados.....

Procurei a Propiedade Params E não Tem Uso a ADOQuery...

só tem Parameters Msmo

A mensagem é essa

[Error] Unit11.pas(39): Undeclared identifier: 'AsString'

Acho que não existe esse Metodo....

não vou poder ver agora. mas dê uma olhada no help sobre o ADOQuery (selecione o compontente e pressione F1) procure nas propriedades e em parameters. Tenho quase certeza que há um meio similar a AsString

Link para o comentário
Compartilhar em outros sites

  • 0
não vou poder ver agora. mas dê uma olhada no help sobre o ADOQuery (selecione o compontente e pressione F1) procure nas propriedades e em parameters. Tenho quase certeza que há um meio similar a AsString

Não tenho muita experiência com ADO, pois só trabalhei uns 3 meses, mas pelo que pude notar essa tecnologia utiliza OLE Variant e tem que ficar sempre convertendo um Variant para seu tipo de dado original, caindo assim sua performance(motivo da minha desistência pelo ADO). Nele você possui Parameters.ParamValues que retorna um Variant, e Parameters.ParamByName que retorna um TParameter que possui a propriedade Value(Variant). Ambos os casos retornam Variant e a conversão deve ser feita.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...