IBQuery.Open - Não Funciona

Delphi

10/10/2003

Tenho um ibquery, fazendo um script de select...... o script é esse:

var
S: String;
begin
S := InputBox(´Pesquisar Regsitros´,´Procurar pelo Campo Nome:´,´´);
if SNome=´´ then Exit;
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Text := ´select * from produtos where pro_nome=:campo´;
IBQuery1.ParamByName(´campo´).Value := ´¬´+S+´¬´;
IBQuery1.Open;
end;
-------------------------------

se eu deixo desse jeito ele não seleciona nada, se eu coloco o IBQuery1.ExecSQL - ele retorna esse erro - cannot open on an dataset...
se eu tiro o
IBQuery1.Open - ele retorna - Use Open for a Select Statement............

--------------------------------------------

Não sei mas o que fazer........ será que é alguma coisa que eu tenho que fazer no interbase, preciso de uma luz no fim do tunnel.......?????

alguém sabe.....???????


Andre_castro

Andre_castro

Curtidas 0

Respostas

Brazoli

Brazoli

10/10/2003

Vc não pode use o execsql para uma select. sómente para insert ou update ou delete.

O erro está na select. Quando vc a busca incremental vc não pode usar o operar = e sim o ´like´

O correto é:
´select * from produtos where pro_nome like :campo´;


GOSTEI 0
Andre_castro

Andre_castro

10/10/2003

brigado cara.........mas

eu fiz do jeito que vc me falou, mas se eu deixar só como open....ele não faz nada, não seleciona nada.....e mantém o ponteiro do banco de dados no primeiro registro................

bom.....não dá mais erro...............???? será que pode me ajudar nessa......?????


GOSTEI 0
Brazoli

Brazoli

10/10/2003

O correto é o open.

Verifique qual o valor que está sendo enviado para o parametro.
Pode ser que tenha alguma coisa inválida e daí ele não acha mesmo.
lembrando que o texto da query dever ser assim:
select ..... where campo like ´valor´ . O seu parametro tem que entrar com as aspas simples..


GOSTEI 0
Andre_castro

Andre_castro

10/10/2003

Olha.......no interbase funciona que vai uma blz......mas no delphi nem.......ele executa tudo normal, com parametros com valor tudo, funciona legal............mas na hora de consultar......olha o erro....

´XSQLDA´ index out of a range...........

bosta....desculpa......é que eu to iniciando em delphi, num sei de quase nada ainda( eu me garanto bem com LINUX HEHEHE )....................vc poderia me responder essa tb.....????


GOSTEI 0
POSTAR