1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

duvia pra criar query.

Discussão em 'Progress 4GL' iniciado por LeandroSantos, Setembro 20, 2010.

  1. mcarril

    mcarril Membro Participativo

    Você tem certeza que esta usando as chaves certas das tabelas ?
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Neste ultimo exemplo que postei não estou utilizando nenhuma tabela do banco, estou usando apenas temp-table e não funcionou.
  3. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Código substituido para o informado no final deste...
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Infelismente esta última solução ficou mais lento do que com o uso da Temp-Table, porque tem que reposicionar registro por registro no browse pra excluir.

    De qualquer forma, Muito obrigado, o que vale é a intenção :D
  5. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Leandro,

    Pesquisei na NET e consegui adequar a rotina para fazer a eliminação de forma automática, sem fazer a eliminação linha a linha e sem usar temp-table.

    Faça um teste:

    Código:
    def var loop    as int      no-undo.
    def var hquery  as handle   no-undo.
    def var hbrowse as handle   no-undo.
    def var vopcao  as int      no-undo.
    def var vtemp   as char     no-undo.
    
    def frame frm-fundo
        vopcao view-as combo-box size 20 by 1 list-item-pairs
            "Todos",0,"Com fx_estrutura",1,"Sem fx_estrutura",2
        with side-label three-d size 80 by 21.
    
    def temp-table fx_contas
        field id-conta as int format ">>,>>9"
        field descricao as char format "x(20)"
        index idx_id-conta is unique id-conta.
    
    def temp-table fx_estrutura
        field id-conta as int format ">>,>>9"
        index idx_id-conta is unique id-conta.
    
    do loop = 1 to 10000.
    
        create fx_contas.
        assign
            fx_contas.id-conta = loop
            fx_contas.descricao = "teste" + string(loop).
    
        if loop mod 3 = 0 then do:
    
            create fx_estrutura.
            assign
                fx_estrutura.id-conta = loop.
    
        end.
    
    end.
    
    define variable hbf-fx_contas as handle no-undo.
    create buffer hbf-fx_contas for table "fx_contas" buffer-name "bf-fx_contas".
    
    create query hquery.
    hquery:set-buffers ( buffer fx_contas:handle, buffer fx_estrutura:handle, hbf-fx_contas).
    
    create browse hbrowse assign
        query       = hquery
        frame       = frame frm-fundo:handle
        separators  = yes
        row         = 2
        col         = 1
        width       = 50
        down        = 20
        sensitive   = yes
        visible     = yes.
        
    hbrowse:max-data-guess = 1000.
    
    hbrowse:add-like-column("fx_contas.id-conta").
    hbrowse:add-like-column("fx_estrutura.id-conta").
    
    on value-changed of vopcao in frame frm-fundo
    do.
        assign frame frm-fundo
            vopcao.
        run openquery.
    end.
    
    enable all with frame frm-fundo.
    
    wait-for window-close of current-window.
    
    procedure openquery.
        case vopcao.
        
            when 0
            then vtemp = " for each fx_contas no-lock, "
                       + "    first fx_estrutura outer-join of fx_contas no-lock, first bf-fx_contas INDEXED-REPOSITION".
        
            when 1
            then vtemp = " for each fx_contas no-lock, "
                       + "    first fx_estrutura of fx_contas no-lock, first bf-fx_contas where avail fx_estrutura INDEXED-REPOSITION".
        
            when 2
            then vtemp = " for each fx_contas no-lock, "
                       + "    first fx_estrutura outer-join of fx_contas no-lock, first bf-fx_contas where not avail fx_estrutura INDEXED-REPOSITION".
    
        end case.
    
        message vtemp.
    
        hquery:query-prepare(vtemp).
        hquery:query-open.
    
    
    end procedure.
    
  6. LeandroSantos

    LeandroSantos Membro Participativo

    Ficou perfeito, era isso mesmo que eu precisava.

    Valeu Eduardo, Muito Obrigado.

Compartilhe esta Página