IBQuery.Open - Não Funciona
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.....???????
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
Curtidas 0
Respostas
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´;
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
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......?????
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
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..
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
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.....????
´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