Função Oracle x DbExpress

Delphi

24/11/2005

Ola Pessoal.
Caros Colegas estou com problemas no DBX quando tento usar uma fnção do oracle em um select a função é :
sum(campo) over (order by campo rows unbounded prededing) nome_campo

me retorna o erro que é o indice esta fora de faixa. Ja tentei usar com o ClientDataSet e SimpleDataSet, mas ambos me retornaum o mesmo erro.
Alguem por favor saberia se existe problemas com funções do Oracle no DBX ?

obs uso D7 + Oracle 9i
Obrigado a Todos.


Mdm

Mdm

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

24/11/2005

se você rodar essa mesma instrução direto no console do oracle funciona?


GOSTEI 0
Mdm

Mdm

24/11/2005

Obrigado Pela Interesse Colega.
Funciona sim, até mesmo quando eu uso o select dentro de uma TQuery, o problema é quando eu vou usar os componentes da DBX, e algo mais curioso é q quando uso apenas a SqlQuery não da problema, mas quando vou fazer uso do provider + ClienteDataset e SimpleDataSet , ai aparece o problema..... sera q o problema esta com O ClienteDataSet ?
Obrigado Colega.


GOSTEI 0
Mdm

Mdm

24/11/2005

sobe


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

24/11/2005

o erro é ´indice fora da faixa´ ou ´valor fora da faixa´?
talvez o valor retornado pelo sum() seja maior do que o valor suportado pelo tipo do campo do clientdataset.


GOSTEI 0
Mdm

Mdm

24/11/2005

O erro é ´Lista de Indices fora de faixa´, não consigo nem adcionar os fields no Componente.

Obrigado


GOSTEI 0
Mdm

Mdm

24/11/2005

Ninguém mais possou por isso ? :cry:


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

24/11/2005

amigo, creio que o clientdataset possa estar ´se perdendo´ no fato de haver 4 elementos para a formação do campo (o normal seria até 2).
sua instrução:
1          2    3                                         4
sum(campo) over (order by campo rows unbounded prededing) nome_campo


normalmente é, no máximo, assim:
1                             2
(sum(campo) [+ sum(campo2)] ) nome_campo


[size=18:93dd1b0cf2]tente fazer:[/size:93dd1b0cf2]
1                                                           2
(sum(campo) over (order by campo rows unbounded prededing)) nome_campo

ou seja: envolva sua instrução em parênteses.


GOSTEI 0
POSTAR