Como fazer consulta?

Delphi

09/10/2003

Olá Colegas

Estou precisando da ajuda de vocês. Estou usando o interbase 6 e preciso fazer uma consulta para entrar com um nome em uma caixa de texto e ele pesquisar este nome.

Ex:

TEnho o nome Carlos chagas Pereira. Eu digito na caixa Chagas e ele consulta todos os nomes que tenha como sobrenome chagas. Digito Pereira e consulta também.

No interbase a seguinte instrução funciona:

Select * from funcionarios where nome like ´¬SILVESTRE¬´

Mais não sei como colocar isto em um formulário será que alguém pode ajudar?

Obrigado.


Francisco.gorgulho

Francisco.gorgulho

Curtidas 0

Respostas

Bampavao

Bampavao

09/10/2003

Eu não testei mas veja se isso funciona

procedure TfrmPesquisa.BitBtn2Click(Sender: TObject);
var sNome: String;
begin
sNome := InputBox(´Pesquisa´,
´Entre com o nome do Cidadão ´, ´´ );
if sNome = ´´ then Exit;
with ´SuaQuery´ do begin
SQL.Clear;
Close;
SQL.Add(´Select * from funcionarios where nome like :Nome´);
Parameters.ParamByName(´Nome´).Value := ´¬´+sNome+´¬´;
Open;
ExecSQL;
end;
end;


GOSTEI 0
Francisco.gorgulho

Francisco.gorgulho

09/10/2003

Teste o código abaixo dado por um colega daqui do clube. Funcionou mas deu um erro:

IBQUERY1.CANNOT PERFORM THIS OPERATION ON NA OPEN DATASET.

Assim que aparece esse erro é só clicar em ok. Que passa. Eu gostaria de tirar esse erro
Alguém pode me ajudar?

procedure TForm4.Button1Click(Sender: TObject);
var sNome: String;
begin
sNome := InputBox(´Pesquisa´,´Entre com o nome do Cidadão ´, ´´ );
if sNome = ´´ then Exit;
with IBQuery1 do begin
SQL.Clear;
Close;
SQL.Add(´Select * from funcionarios where nome like :Nome´);
Params.ParamByName(´Nome´).Value := ´¬´+sNome+´¬´;
Open;
ExecSQL;
end;
end;


GOSTEI 0
Anorex

Anorex

09/10/2003

tire a linha: ExecSQL.


GOSTEI 0
Imoreira

Imoreira

09/10/2003

Veja:

http://delphiforum.icft.com.br/forum/viewtopic.php?t=23977


GOSTEI 0
Dart

Dart

09/10/2003

isso funciona com paradox ?

Valeu


Dart


GOSTEI 0
Bampavao

Bampavao

09/10/2003

Não sei, soh testando pra saber.

Falow


GOSTEI 0
Imoreira

Imoreira

09/10/2003

Funciona sim.


GOSTEI 0
Dart

Dart

09/10/2003

iMoreira

eu fiz assim so que nao funfou.

Por Que?

var sNome: String;
begin
sNome := InputBox(´Pesquisa´,´Entre com o nome do Cidadão ´, ´´ );
if sNome = ´´ then Exit;
with Query1 do begin
SQL.Clear;
Close;
SQL.Add(´Select * from clientes where nome like :Nome´);
Params.ParamByName(´Nome´).Value := ´¬´+sNome+´¬´;
Open;
end;
end;


o dbgrid fica em branco.


Valeu


GOSTEI 0
Outl@w

Outl@w

09/10/2003

Ao invés de:

SQL.Add(´Select * from clientes where nome like :Nome´);
Params.ParamByName(´Nome´).Value := ´¬´+sNome+´¬´;

Tente:

SQL.Add(´Select * from clientes where nome like Nome = ´+´¬´+sNome+´¬´);

Eu não testei mas acho que funciona...


GOSTEI 0
Dart

Dart

09/10/2003

eu fiz mas deu um erro

SQL.Add(´Select * from clientes where nome like razao = ´+´¬´+sNome+´¬´);

invalid used of keyword.
token: =
line number: 1


GOSTEI 0
Marcelo.c

Marcelo.c

09/10/2003

SQL.Add(´Select * from clientes where nome like razao = ´+´¬´+sNome+´¬´);
SQL.Add(´Select * from clientes where nome like ´+QuotedStr(´¬´+sNome+´¬´));

ou
SQL.Add(´Select * from clientes where razao like ´+QuotedStr(´¬´+sNome+´¬´));



GOSTEI 0
POSTAR