DBGrid (? ) não reconhece campo (rownum) do Oracle.
Olá.
Estou usando o banco Oracle e Delphi 6 com BDE, Query e DBGrid. Tenho uma consulta que usa o rownum.
Adicionei esse campo normalmente, e no DBGrid ele foi setado para preencher uma coluna.
Acontece que quando o sistema abre a tela, dá o seguinte erro: "Query1: Field sequencia not found".
Porque será que ele não encontra o campo, já que este foi configurado normalmente na coluna do Grid?
Grato.
Domingos
Estou usando o banco Oracle e Delphi 6 com BDE, Query e DBGrid. Tenho uma consulta que usa o rownum.
select rownum as sequencia, campo2, campo3 ....
Adicionei esse campo normalmente, e no DBGrid ele foi setado para preencher uma coluna.
Acontece que quando o sistema abre a tela, dá o seguinte erro: "Query1: Field sequencia not found".
Porque será que ele não encontra o campo, já que este foi configurado normalmente na coluna do Grid?
Grato.
Domingos
Domingos Neto
Curtidas 0
Respostas
Wilson Junior
13/10/2010
Coloque o seu código fonte aqui para poder lhe ajudar.
GOSTEI 0
Domingos Neto
13/10/2010
Wilson,
"Não tem código" não. É uma consulta SQL dentro de uma query, que é ligada a um DBGrid. Nessa query adiciono todos os campos da consulta, inclusive o rownum (foi dado um alias a ele). Então lá numa coluna do DBGrid seleciono esse campo e na hora de abrir o form, ao executar, diz que o campo nao foi encontrado.
[]´s
Domingos
"Não tem código" não. É uma consulta SQL dentro de uma query, que é ligada a um DBGrid. Nessa query adiciono todos os campos da consulta, inclusive o rownum (foi dado um alias a ele). Então lá numa coluna do DBGrid seleciono esse campo e na hora de abrir o form, ao executar, diz que o campo nao foi encontrado.
[]´s
Domingos
GOSTEI 0
Wilson Junior
13/10/2010
Você já chegou a executar este SQL diretamente no Oracle e verificou se funcionou?
GOSTEI 0
Deivison Melo
13/10/2010
Boa tarde,
estranho!!!
o tipo de coluna no seu dbgrid está com o mesmo tipo do rownum?
select rownum sequencia // inteiro
from dual
select rowid sequencia // varchar2
from dual
Atenciosamente,
Emanoel Deivison
GOSTEI 0
Eriley Barbosa
13/10/2010
Também utilizo oracle e você não deve utilizar o rownum numa tabela com muitos registros, pois, quando der o open na tabela, não vai nem abrir se tiver muitos registros, devido ao oracle ter que criar a sequência de numeração.
Ao invés disso use um campo calculado e no evento oncalcfields da query tente algo assim:
seucampocalculado.value := suaquery.recno;
GOSTEI 0