1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Urgente Erro -9900 retornado de fdfnd (1410)

Discussão em 'Progress 4GL' iniciado por Andrei, Março 28, 2017.

  1. Andrei

    Andrei Sem Pontuação

    Bom dia,

    Alguém já se deparou com este erro? Erro -9900 retornado de fdfnd (1410)

    Acontece em um procedure que realize diversas leituras e operações básicas de alteração e exclusão de registros.

    Agradeço a ajuda.

    Abraço
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    O Kbase diz o seguinte:
    Código:
    4GL/ABL: Errors (1410) and (40) running an ABL application
    Error code <number> returned from fdfnd. (1410)
    Error code -20011 returned from fdfnd. (1410)
    SYSTEM ERROR: Attempt to define too many indexes. (40)
    The called procedure uses an OUTPUT parameter TEMP-TABLE, NEW SHARED
    A CAN-FIND or a FOR EACH with the BREAK BY option is used against the TEMP-TABLE.
    
    Temp table passed as an output parameter and defined as NEW SHARED in the called procedure where the CAN-FIND statement is used. For example:
    
    /* caller.p */
    DEFINE TEMP-TABLE t_temp
    FIELD x_name AS CHAR.
    RUN temp.p (OUTPUT TABLE t_temp).
    
    /* temp.p */
    DEFINE NEW SHARED TEMP-TABLE t_temp
    FIELD x_name AS CHARACTER.
    DEFINE OUTPUT PARAMETER TABLE FOR t_temp.
    IF CAN-FIND(FIRST t_temp) THEN RETURN.
    
    
    Temp table passed as an output parameter and defined as NEW SHARED in the called procedure where the FOR EACH with the BREAK BY option statement is used. For example:
    
    /* main.p */
    DEFINE TEMP-TABLE t_temp
    FIELD x_name AS CHAR.
    RUN temp.p (OUTPUT TABLE t_temp).
    
    /* temp.p */
    DEFINE NEW SHARED TEMP-TABLE t_temp
    FIELD x_name AS CHARACTER.
    DEFINE OUTPUT PARAMETER TABLE FOR t_temp.
    FOR EACH t_temp BREAK BY t_temp.x_name:
    END.
    e a solução ....
    Código:
    Upgrade to OpenEdge 10.1B02 or later. If upgrading to OpenEdge 10.1B02 or later is not feasible, a work around is to either:
    
    1. Redefine the TEMP-TABLE as a non NEW SHARED.
    
    or
    
    2. Replace the CAN-FIND function with FIND, IF AVAILABLE etc...or Replace the the FOR EACH with the BREAK BY option statement .
    Workaround  
    Notes  
    Attachment    
    
  3. Andrei

    Andrei Sem Pontuação

    Opa Richard, obrigado por responder.

    Acredito que não seja isso, pois não há nenhuma temp-table ou shared table no fonte. Apenas estou trabalhando com buffers, não sei se encaixaria nessa situação.
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    pode ser, mas ai teria que conhecer o seu programa pra palpitar.

Compartilhe esta Página