none
Inserir arquivo no banco e obtendo o progresso da operacão RRS feed

  • Pergunta

  • Estou com  o seguinte problema em minha aplicação:

    Preciso salvar um arquivo no banco de dados e enquanto o arquivo está sendo salvo, quero mostrar o progresso do salvamento. Tentei fazer com Threads, BackgroundWorker mas nada disso tenho conseguido.

    Na internet, tenho visto vários exemplos que mostram o backgroundWorker ou Thread mas sempre se utilizam do Timer para realizar a contagem do progressBar.

    Tem alguma forma real de eu realizar esse procedimento e saber quantos bytes foram salvos, quantos bytes que restam a serem salvo e em cima disso realizar uma contagem de tempo estimado e/ou uma porcentagem de conclusão ou algo do tipo?

    Acredito que muitos já passaram por isso e ainda tem dúvidas então quem puder ajudar serei grato!

    Obrigado!


    sexta-feira, 6 de outubro de 2017 13:59

Respostas

  • Na verdade esta é uma função do banco de dados, não de sua aplicação

    se for pra vários registros você pode salvar um a um e a partir daí obter o progresso conforme o bd for te retornando registro salvo.

    pra saber do progresso de Querys(consultas), até onde eu sei, bancos de dados destes mais corriqueiros como o MS Sql Server, SQLite e MySql não te dão um feedback de process progress


    ------------------------------------------ "Existem 10 tipos de pessoas: as que entendem números binários e as que não entendem..."

    sexta-feira, 6 de outubro de 2017 15:15
  • Boa tarde almeidaspablo

    Como estás querendo saber apenas o progresso de inserção de um único arquivo, complica um pouco, se fosse um lote de arquivos você poderia utilizar a ideia do marcelocamposs.

    Minha sugestão seria estipular que para o progresso de salvar o arquivo você atribui ao tempo máximo de timeout da tua aplicação com o banco de dados, e a partir disso, a cada segundo passado, você atribui o progresso, caso o processo de salvar o arquivo conclua bem antes do tempo máximo de timeout, você completa a barra de progresso por inteira e diz que foi salvo com sucesso.

    Assim, visualmente daria a sensação ao usuário de que está sendo processado o arquivo.

    sexta-feira, 6 de outubro de 2017 15:52

Todas as Respostas

  • Na verdade esta é uma função do banco de dados, não de sua aplicação

    se for pra vários registros você pode salvar um a um e a partir daí obter o progresso conforme o bd for te retornando registro salvo.

    pra saber do progresso de Querys(consultas), até onde eu sei, bancos de dados destes mais corriqueiros como o MS Sql Server, SQLite e MySql não te dão um feedback de process progress


    ------------------------------------------ "Existem 10 tipos de pessoas: as que entendem números binários e as que não entendem..."

    sexta-feira, 6 de outubro de 2017 15:15
  • Boa tarde almeidaspablo

    Como estás querendo saber apenas o progresso de inserção de um único arquivo, complica um pouco, se fosse um lote de arquivos você poderia utilizar a ideia do marcelocamposs.

    Minha sugestão seria estipular que para o progresso de salvar o arquivo você atribui ao tempo máximo de timeout da tua aplicação com o banco de dados, e a partir disso, a cada segundo passado, você atribui o progresso, caso o processo de salvar o arquivo conclua bem antes do tempo máximo de timeout, você completa a barra de progresso por inteira e diz que foi salvo com sucesso.

    Assim, visualmente daria a sensação ao usuário de que está sendo processado o arquivo.

    sexta-feira, 6 de outubro de 2017 15:52
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 9 de outubro de 2017 13:03
    Moderador