Atribuir parâmetro à instrução SQL em Oracle
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?
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
Curtidas 0
Respostas
Michelle
05/01/2005
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?
GOSTEI 0
Motta
05/01/2005
tente
Verifique se o tipo do parametro está como Float , em algumas versões acho que isto pode dar problemas de falta a definição
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
GOSTEI 0
Michelle
05/01/2005
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?
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?
GOSTEI 0
Motta
05/01/2005
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 ...
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 ...
GOSTEI 0
Michelle
05/01/2005
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.
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.
GOSTEI 0
Motta
05/01/2005
Tentou o método silvicola (deletar o comp. e criar outro) ?
GOSTEI 0