Alguem pode ajudar nesse exemplo

Discussão em 'Progress 4GL' iniciado por Murillo, Agosto 18, 2009.

  1. Murillo

    Murillo Sem Pontuação

    E ai Galera.

    Alguem ai pode me ajudar, ele nao esta passando no segunto for each, esta dando mensagem 91 a tabela esta criada certinha char talzz mas.. nao esta passando os dados:

    DEFINE TEMP-TABLE TT-TABELA
    FIELD ID AS CHAR FORMAT "X(3)".

    INPUT FROM C:\dados.txt.

    REPEAT:
    CREATE TT-TABELA.
    IMPORT DELIMITER ";" TT-TABELA.ID.

    FOR EACH TT-TABELA:
    DELETE TT-TABELA.
    END.

    FOR EACH TT-TABELA
    WHERE TT-TABELA.ID <> "":

    FIND TABELA
    WHERE TABELA.CAMPO = TT-TABELA.ID.
    IF AVAIL tabela THEN NEXT.
    ELSE
    CREATE tabela.
    ASSIGN tabela.campo = tt-tabela.ID.
    END.
    DISP campo.
    END.

    Se alguem puder me ajudar, valeu..
  2. petruzad

    petruzad Membro Participativo

    experimente comentar a linha delete tt-tabela.
  3. mcarril

    mcarril Membro Participativo

    Oi Murilo, tenta mudar o trecho abaixo:

    Código:
    FOR EACH TT-TABELA 
        WHERE TT-TABELA.ID <> "":
        
        FIND TABELA 
            WHERE TABELA.CAMPO = TT-TABELA.ID NO-ERROR.
        IF NOT AVAIL tabela THEN DO:
            CREATE tabela.
            ASSIGN tabela.campo = tt-tabela.ID.
        END.
    END.
        DISP campo.    
    END.
    
    Outra coisa, você importa o dado na tabela , APAGA, e depois quer vê-los ?
  4. Murillo

    Murillo Sem Pontuação

    MEU boiei, na hora que eu estava jogando o script, ao em vez de limpar a tabela, eu limpei a temp-table
    Mas mesmo assim continua dando um erro
    agora é o 138
  5. mcarril

    mcarril Membro Participativo

    Você pode nos passar o conteúdo deste .txt ?
  6. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Murilo,

    O que esta acontecendo é que no find first, você não utilizou o NO-ERROR no final de sentença, dai ele sempre vai gerar o erro 138.
    Para você poder tratar o erro (IF AVAIL TABELA), precisa utilizar o parâmetro:

    Código:
    ...
    FIND TABELA 
    WHERE TABELA.CAMPO = TT-TABELA.ID NO-ERROR.
    IF AVAIL tabela THEN NEXT.
    ...
    
    Att.

Compartilhe esta Página