Atribuir parâmetro à instrução SQL em Oracle

05/01/2005

0

Preciso de uma mãozinha!
Estou usando oracle 9.0 com delphi 7. Tenho no meu projeto um componente TQuery com a seguinte propriedade SQL:

select * from lote
where lote.lote > :xlote
order by lote.lote

E um botão cujo evento onclick tem o seguinte código:

[b:0beba7a265]procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
qlote.Close;
qlote.ParamByName(´xlote´).Value:=strtofloat(edit1.Text);
qlote.Open;
end;[/b:0beba7a265]
onde qLote é meu componente TQuery e xlote é meu parâmetro que será digitado pelo usuário num TEdit.
O problema é que o delphi me apresenta o erro ´Operation not apllicable´ quando executo o comando [b:0beba7a265]qlote.open[/b:0beba7a265].
Sei que deve ser erro de sintaxe da instrução SQL, mas não sei como fazer correto.
Podem me ajudar?


Michelle

Michelle

Responder

Posts

05/01/2005

Michelle

Preciso de uma mãozinha! Estou usando oracle 9.0 com delphi 7. Tenho no meu projeto um componente TQuery com a seguinte propriedade SQL: select * from lote where lote.lote > :xlote order by lote.lote E um botão cujo evento onclick tem o seguinte código: [b:e05ca27461]procedure TForm1.SpeedButton1Click(Sender: TObject); begin qlote.Close; qlote.ParamByName(´xlote´).Value:=strtofloat(edit1.Text); qlote.Open; end;[/b:e05ca27461] onde qLote é meu componente TQuery e xlote é meu parâmetro que será digitado pelo usuário num TEdit. O problema é que o delphi me apresenta o erro ´Operation not apllicable´ quando executo o comando [b:e05ca27461]qlote.open[/b:e05ca27461]. Sei que deve ser erro de sintaxe da instrução SQL, mas não sei como fazer correto. Podem me ajudar?



Responder

05/01/2005

Motta

tente

qlote.ParamByName(´xlote´).AsFloat:=strtofloat(edit1.Text); 


Verifique se o tipo do parametro está como Float , em algumas versões acho que isto pode dar problemas de falta a definição


Responder

06/01/2005

Michelle

Obrigada pela atenção Motta, mas mesmo mudando o código como vc sugeriu o erro presistiu.
Mesmo porque, qaundo estou debugando o código, a linha que apresenta erro é a da instrução [i:23ced39489]qLote.Open[/i:23ced39489]. Pela linha onde atribuo o parâmetro a execuçào passa numa boa.
O estranho é que o mesmo código com o Paradox funciona sem problemas. Tem alguma outra sugestão?


Responder

06/01/2005

Motta

A query roda via sqlplus ?
A query está configura ao banco corretamente ?
O User que roda tem direito de exec. sql ?

Muito esquisito este erro num select tão simples ...


Responder

06/01/2005

Michelle

Oi Motta,

Todas as respostas são sim.
Acabei de fazer o seguinte teste:
- Inseri um componente TADO na mesma aplicaçào. Inseri a mesma instruçào SQL e o mesmo código pra um segundo botão.
Aúnica diferença é que no evento onclick do button2 o código na segunda linha ficou assim:

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
qloteado.Close;
qloteado.[b:e58e036afd]Parameters[/b:e58e036afd].ParamByName(´xlote´).Value:=strtofloat(edit1.Text);
qloteado.Open;
end;

e funcionou corretamente.
Tô ficando louca porque também acho o erro estranho.


Responder

06/01/2005

Motta

Tentou o método silvicola (deletar o comp. e criar outro) ?


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar