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
jaisonantoniazzi

Pesquisar campos em todas as tabelas de todos os bancos conectados 2014-04-06

buffer-handle,buffer-field,pesquisar,campos,bancos

  1. jaisonantoniazzi
    Pesquisar campos em todas as tabelas de todos os bancos conectados para progress 102B ou superior.

    /*

    use this program to search for some field on your connected databases

    Input Parameters:
    <none>

    Output Parameters:
    <none>

    Author:

    jaison antoniazzi
    jaison.antoniazzi@gmail.com
    jaison@neostep.com.br
    skype: jaison.antoniazzi

    04/06/2014
    */

    ASSIGN INPUT myfield.

    DEFINE VARIABLE idbs AS INTEGER NO-UNDO.
    DEFINE VARIABLE currentDB AS CHARACTER NO-UNDO.

    DEFINE VARIABLE hqueryFile AS HANDLE NO-UNDO.
    DEFINE VARIABLE hbufferFile AS HANDLE NO-UNDO.
    DEFINE VARIABLE hbufferFIELD AS HANDLE NO-UNDO.

    SESSION:SET-WAIT-STATE('general').

    myresult:INSERT-STRING( FILL('=', 40) + CHR(10)).
    myresult:INSERT-STRING( 'Searching field: ' + myfield + CHR(10)).
    myresult:INSERT-STRING( FILL('=', 40) + CHR(10)).

    REPEAT idbs = 1 TO NUM-DBS:

    currentDB = LDBNAME(idbs).

    CREATE BUFFER hbufferFILE FOR TABLE currentDB + "._file".
    CREATE BUFFER hbufferFIELD FOR TABLE currentDB + "._field".
    CREATE QUERY hqueryFILE.
    hqueryFILE:SET-BUFFERS(hbufferFILE, hbufferFIELD).
    hqueryFILE:QUERY-PREPARE(SUBSTITUTE
    ('FOR EACH _FILE WHERE _file._HIDDEN = FALSE, ' +
    ' EACH _field WHERE _field._file-recid = RECID(_FILE) ' +
    ' AND _field._field-name BEGINS "&1" ',
    myfield) ).
    hqueryFILE:QUERY-OPEN().
    hqueryFILE:GET-FIRST().

    DO WHILE NOT hqueryFILE:QUERY-OFF-END:

    myresult:INSERT-STRING( hbufferFILE:BUFFER-FIELD("_file-name"):BUFFER-VALUE + "." +
    hbufferFIELD:BUFFER-FIELD("_field-name"):BUFFER-VALUE +
    CHR(10) ).

    hqueryFILE:GET-NEXT().
    END.

    FINALLY:

    DELETE OBJECT hqueryFILE NO-ERROR.
    DELETE OBJECT hbufferFILE NO-ERROR.
    END FINALLY.
    END.

    FINALLY:
    SESSION:SET-WAIT-STATE('').
    END FINALLY.
    magsoa, rohis e emr curtiram isso.