Acessar Tabelas Internas no AppBuilder (??)

Discussão em 'Progress 4GL' iniciado por mbender, Janeiro 2, 2012.

  1. mbender

    mbender Sem Pontuação

    Olá pessoal!

    Gostaria de saber se tem como acessar as tabelas internas no AppBuilder através de um "SmartDataObject". Para "tabelas internas", me refiro as tabelas "_File, _connect...".
    No "Data Dictionary" consigo visualizar acessando o menu View escolhendo a opção "Show Hidden Tables".
    Obrigada,
  2. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    Já vi um programa fazer isso, pra consultar campos e tabelas, só que ele utilizava query dinamica.
  3. mbender

    mbender Sem Pontuação

    Sou iniciante. Vc tem um exemplo do uso de query dinamica?

    Obrigada,
  4. MFerreira

    MFerreira Membro Participativo

    O acesso e leitura as tabelas internar é normal, como se faz com qualquer outra tabela (for each, find... por query, etc).
    Apenas lembre-se de colocar o nome do banco na frente da tabela, já que todos os bancos conectados possuem as mesmas tabelas.

    Não sei se era essa sua dúvida, qualquer coisa, a disposição.
  5. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    Segue exemplo de query dinâmica.

    Código:
    DEFINE TEMP-TABLE tt-emitente NO-UNDO LIKE mgcad.emitente.
    
    FIND LAST emitente NO-LOCK WHERE emitente.cod-emitente < 99999 NO-ERROR.
    CREATE tt-emitente.
    BUFFER-COPY emitente TO tt-emitente.
    
    RELEASE emitente.
    RELEASE tt-emitente.
    
    DEFINE VARIABLE iLin  AS INTEGER     NO-UNDO.
    DEFINE VARIABLE iCont AS INTEGER     NO-UNDO.
    
    DEFINE VARIABLE qh     AS HANDLE.
    DEFINE VARIABLE bh     AS HANDLE.
    
    CREATE QUERY qh.
    CREATE BUFFER bh FOR TABLE "tt-emitente".
    
    qh:SET-BUFFERS(bh). 
    qh:QUERY-PREPARE("for each tt-emitente").
    qh:QUERY-OPEN.
    
    
    /*Dados*/
    DO WHILE (qh:GET-NEXT = YES):
        /*ASSIGN iLin = iLin + 1.
        DO iCont = 1 TO bh:NUM-FIELDS:*/
        DISP bh:BUFFER-FIELD(1):BUFFER-VALUE.
        /*END.*/
    END.
    
    
    
  6. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    assim como o colega disse, é preciso colocar o nome do banco nestas tabelas!
    montando uma lógica vc conseguirá pesquisar em todas as tabelas "ocultas" com uma única query.

Compartilhe esta Página