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

Use RECID as primary key in OpenEdge TEMP-TABLE

Discussão em 'StackOverflow' iniciado por fdantas, Novembro 1, 2017.

  1. fdantas

    fdantas Administrator Moderador

    I would like to create a dataset containing a couple of temp-tables that are filled by an xml file.

    DEF TEMP-TABLE ttOrder NO-UNDO
    FIELD iOrderNo AS INT
    FIELD iOrderDate AS DATE
    INDEX ix RECID. // This also won't work, but this is needed to use the `OF` statement when retrieving records.

    DEF TEMP-TABLE ttOrderLine NO-UNDO
    FIELD iParent AS RECID
    FIELD iArticleNo AS INT
    FIELD dPrice AS DECIMAL.

    DEF DATASET dsOrder FOR ttOrder, ttOrderLine
    DATA-RELATION Order_OrderLine FOR ttOrder, ttOrderLine
    RELATION-FIELDS ttOrder.RECID, ttOrderLine.iParent. // This is what won't work, but what I would like to do.


    Usually I would just create an iOrderNo field in ttOrderLine and match that in the datasets RELATION-FIELDS attribute. Since the data is loaded from an XML file, this will be tough.

    The end goal is that instead of this:

    FIND FIRST ttOrder.
    FOR EACH ttOrderLine WHERE ttOrderLine.iParent = RECID(ttOrder):
    // Do something
    END.


    I would like to do this:

    FIND FIRST ttOrder.
    FOR EACH ttOrderLine of ttOrder:
    // Do something
    END.


    The error I get now when using the last method is Index field of table1 must be fields in table2.

    Could someone tell me how I can get this done?

    Continue reading...

Compartilhe esta Página