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

upload de arquivo

Discussão em 'Progress 4GL' iniciado por jaozi_nho, Janeiro 29, 2013.

  1. jaozi_nho

    jaozi_nho Membro Participativo

    Olá, estou com uma duvida, no progress tem alguma forma que eu possa salvar 1 arquivo .pdf , .doc ou imagem no banco? ou então em algum diretório de upload?

    por exemplo, em um registro de não conformidade o usuário esta em 1 tela e deseja anexar 1 arquivo junto com os campos da tabela, qual a melhor forma de fazer.
  2. lima

    lima Membro Participativo

    Amigo,

    Segue abaixo um exemplo para o que você está precisando, você deve criar um campo com o tipo de dado blob na sua tabela no banco de dados. Te aconselho a criar um campo char para armazenar o nome do arquivo tbm, isso facilitará depois para você extrair este arquivo.

    Código:
    
    /*Armazenar arquivo na tabela*/
    define variable c-arquivo as char no-undo.
    
    ASSIGN c-arquivo                       = "C:\TEMP\TESTE.pdf"
              ext-funcionario.nome-arquivo = "teste.pdf".
    
    COPY-LOB FROM FILE c-arquivo TO ext-funcionario.arquivo NO-CONVERT.
    
    /*Extrair arquivo da tabela*/
    DEFINE VARIABLE mp-arq     AS MEMPTR      NO-UNDO.
    
    ASSIGN c-arquivo = "C:\Temp\" + ext-funcionario.nome-arquivo.
    
    COPY-LOB FROM ext_funcionario.arquivo TO mp-arq.
    COPY-LOB mp-arq TO FILE c-arq-serv. 
    
    
    Espero ter ajudado.

    Abraço.
  3. rhemati

    rhemati Membro Participativo

    Pessoal, boa tarde.

    João, boa tarde. blz.

    Segue abaixo um teste que eu fiz e funcionou legal demais!!!

    Código:
    /* Armazenar arquivo na tabela */
    define variable c-arquivo as char no-undo.
    
        assign  c-arquivo           =   'C:\TEMP\pdf.pdf'
                .
    
        /* Para Inserir Arquivo no Banco - Campo Blob */
        find first tb_teste
            where tb_teste.cod-teste    =   1
            and tb_teste.descricao      =   c-arquivo
            no-lock no-error.
        if not available tb_teste then do:
            create  tb_teste.
            assign  tb_teste.cod-teste  =   1
                    tb_teste.descricao  =   c-arquivo
                    .
    
            COPY-LOB FROM FILE c-arquivo TO tb_teste.arquivo NO-CONVERT.
    
        end.
        else do:
            MESSAGE 'Arquivo já existe'
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
        end.
    
    
        /*Extrair arquivo da tabela*/
        DEFINE VARIABLE mp-arq     AS MEMPTR      NO-UNDO.
        def var c-arq-serv as char no-undo.
    
        find first tb_teste
            where tb_teste.cod-teste    =   1
            and tb_teste.descricao      =   c-arquivo
            no-lock no-error.
        if available tb_teste then do:    
    
            assign  c-arquivo = tb_teste.descricao.
    
            assign  c-arq-serv  =   'c:\magat\teste.pdf'.
    
            COPY-LOB FROM tb_teste.arquivo TO mp-arq.
            COPY-LOB mp-arq TO FILE c-arq-serv.
    
            MESSAGE 'Arquivo Salvo no servidor!!!'
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
        end.
    
    
    
    
  4. rhemati

    rhemati Membro Participativo

    Segue o .df da tabela.

    Att.,

    Arquivos Anexados:

  5. lima

    lima Membro Participativo

    Ué, não foi a mesma solução que a minha Cristiano?
  6. rhemati

    rhemati Membro Participativo

    Sim, claro. vc está certo.

    É só o teste que funcionou legal e segue o .p e o .df como ficou na tabela no banco.

    abraço.

Compartilhe esta Página