[RESOLVIDO] Too Many Indexes

Discussão em 'EMS , HCM e Totvs 11' iniciado por kikofr, Outubro 25, 2010.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. kikofr

    kikofr Membro Participativo

    Boa tarde.

    Estou desenvolvendo um programa que atualiza os dados de um embarque.

    e quando rodo o programa me ocorre o seguinte erro, "System Error: Attempt to define too many indexes for area 6 database DBI3540a00192". Alguem já passou por isso?

    Segue abaixo o código utilizado.

    Código:
    {utp/ut-glob.i}
    {include/i-prgvrs.i ESDI041W 2.06.00.001}
    
    DEFINE PARAMETER BUFFER p-embarque      FOR embarque.
    DEFINE PARAMETER BUFFER p-old-embarque  FOR embarque.
    /*DEF TEMP-TABLE tt-embarque LIKE embarque.*/
    {eqp/eqapi300.i}
    
    DEFINE VARIABLE h-api AS HANDLE NO-UNDO.
    RUN eqp/eqapi300.p PERSISTENT SET h-api.
    
    FIND FIRST p-embarque
        WHERE p-embarque.placa BEGINS "REC00" NO-LOCK NO-ERROR.
    IF AVAIL p-embarque THEN DO:
        CREATE tt-embarque.
        BUFFER-COPY p-embarque TO tt-embarque.
        ASSIGN tt-embarque.placa = ""
               tt-embarque.nome-transp = ""
               tt-embarque.motorista = "".
        run pi-recebe-tt-embarque in h-api (input table tt-embarque).
        RUN pi-trata-tt-embarque IN h-api (INPUT "SHOW",
                                           INPUT TRUE).
    END.
    
  2. muertebr

    muertebr Membro Participativo

    Voce ja descobriu onde que é o erro...
    se é dentro de uma dessas includes ou aonde?

    Esse erro acredito que tenha a ve com indice, mais agora não me recordo o que.
  3. MFerreira

    MFerreira Membro Participativo

    Amigo, bom dia!

    Olhando o código abaixo, a pergunta anterior é interessante.
    Mas acredito que o problema esteja no seu programa:

    Código:
    DEFINE VARIABLE h-api AS HANDLE NO-UNDO.
    /*COMENTÁTIO Verifique que você carrega esta api.. pode ser que seu programa seja chamado várias vezes durante o processo*/
    RUN eqp/eqapi300.p PERSISTENT SET h-api.
    
    FIND FIRST p-embarque
        WHERE p-embarque.placa BEGINS "REC00" NO-LOCK NO-ERROR.
    IF AVAIL p-embarque THEN DO:
        CREATE tt-embarque.
        BUFFER-COPY p-embarque TO tt-embarque.
        ASSIGN tt-embarque.placa = ""
               tt-embarque.nome-transp = ""
               tt-embarque.motorista = "".
        run pi-recebe-tt-embarque in h-api (input table tt-embarque).
        RUN pi-trata-tt-embarque IN h-api (INPUT "SHOW",
                                           INPUT TRUE).
    END.
    /*COMENTÁTIO Verifique aqui você não finaliza sua api (h-api).
       é provável que esta api defina temp-tables e como você não elimina, mesmo que seu programa não esteja persistente, as temp-tables dentro desta h-api ficarão em execução, chegando uma hora a dar este erro*/

    Tente finalizar a api.
    Se continuar o erro, nos retorne.

    Att,
    Maykon.
  4. MFerreira

    MFerreira Membro Participativo

    Ahh, veja a parte que coloquei /*comentario*/
  5. kikofr

    kikofr Membro Participativo

    Opa,

    Acredito que possa ser isso, mas como finalizaria a API?

    Obrigado desde já.
  6. MFerreira

    MFerreira Membro Participativo

    DELETE PROCEDURE<NOME DO OBJETO HANDLE>.

    Este caso ficaria: delete procedure h-api.

    Cuide para utilizar o delete dos handles, pois ele não estará mais disponível a não ser que se inicialize novamente. O mesmo serve para objetos (delete object).
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página