none
Loop em blocos, Ler XML, Inseri banco, atualiza valor do atributo XML RRS feed

  • Pergunta

  • Olá Galera,



    Estou precisando de um help uma ajuda urgente de como e se é possível fazer isso.

    Tenho um código com a seguinte lógica:

    1 - Faço o upload de um arquivo xml
    2 - Abro o arquivo xml
    3 - Leio o arquivo, linha por linha
    4 - Comparo para vê se o dado já existe no banco
    5 - Se não existir, vou inserirndo no banco de dados
    4 - No final gravo no histórico de operação



    Até ai beleza para arquivos que não tenha muitos registros, se tiver muitos registro o loop é encerrado com scrip timeout automáticamente pelo servidor.

    O problema é o seguinte o arquivo xml tem muitas linha muitos registro um total em média de 9.000 a 15.000, registros para ser lidos do xml e inseridos no banco de dados.

    Ai o loop fica gigante e acabaca caindo em script time out.

    A minha ideia seria a seguinte eu criar mais um campo no xml chamado status e colocaria como valor default 0, e a cada leitura e inserção no banco eu alteraria o valor do status para 1 no xml.

    Ai quando eu fosse lê o xml eu irira lê filtrando os dados somente que tiver os status igual a 0, pois assim eu poderia fazer, o loop em blocos, e não teria esse problema script time out.

    Mais o meu probelma é justamente esse, conseguir alterar o campo status em questão de 0 para 1, e lêr o xml filtrando pelo status = 0, tipo como se faz com sql.

    Estou usando o XMLDOM na locaweb.

    Estou precisando disso com muita urgencia, por favor me ajudem, qualquer sugestão informação, tutorial , dica, código, exemplo e etc... será muito válido e de muita ajuda.




    Aguardo uma ajuda de todos.
    Um Abraço a todo e grata desde já.
    quinta-feira, 24 de maio de 2007 14:59

Todas as Respostas

  • Antes de ter esse trabalho todo, experimente redefinir o timeout do script colocando no começo do seu código:

     

    <%

    Server.ScriptTimeout = 0

    %>

     

    Se não me engano, 0 é infinito. Se não funcionar, coloque um valor alto ou que seja suficiente pro seu script executar (em segundos).

    quinta-feira, 24 de maio de 2007 21:27