Ir para conteúdo
Fórum Script Brasil
  • 0

Importar um TXT para access utilizando asp


dcoder

Pergunta

Boa tarde pessoal,

Tenho um arquivo de texto mais ou menos assim:

Dt.Entrega;Hora;Item;Cliente;End.Ent.;Fab.;Qt.Embalagem;Embalagem;T.Prg;Chamada;Quant/Uc.;Qt.Ucs;Total;Sit.

01/01/01; ;464516550;B.M.A.;;;0;;P.E.;;0;0;50;;

01/01/01; ;467784990;B.M.A.;;;0;;P.E.;;0;0;87;;

01/01/01; ;467794120;B.M.A.;;;0;;P.E.;;0;0;3;;

01/01/01; ;467834940;B.M.A.;;;0;;P.E.;;0;0;5;;

01/01/01; ;468048420;B.M.A.;;;0;;P.E.;;0;0;100;;

01/01/01; ;468088790;B.M.A.;;;0;;P.E.;;0;0;269;;

01/01/01; ;517033720;B.M.A.;;;0;;P.E.;;0;0;100;;

01/01/01; ;77700630;B.M.A.;;;0;;P.E.;;0;0;33;;

01/01/01; ;90412854;B.M.A.;;;0;;P.E.;;0;0;4;;

01/01/01; ;93276204;B.M.A.;;;0;;P.E.;;0;0;38;;

01/01/01; ;93303361;B.M.A.;;;0;;P.E.;;0;0;50;;

01/01/01; ;93303362;B.M.A.;;;50;0340-154;P.E.;;0;0;34;;

01/01/01; ;93366639;B.M.A.;;;0;;P.E.;;0;0;20;;

01/01/01; ;9639172880;B.M.A.;;;0;;P.E.;;0;0;10;;

01/01/01; ;B32437;B.M.A.;;;0;;P.E.;;0;0;11;;

22/06/09; ;93303361;DELPHI JAGUA;;;30;KLT6428;P.E.;;0;0;30;;

08/06/09; ;93399696;DELPHI JAGUA;;;0;;P.E.;;0;0;50;;

28/01/09; ;BC0172687130;DENSO BR;PIN ;PIN;0;;P.E.;;0;0;40;;

11/02/09; ;BC0172687130;DENSO BR;PIN ;PIN;0;;P.E.;;0;0;40;;

11/03/09; ;BC0172687130;DENSO BR;PIN ;PIN;0;;P.E.;;0;0;40;;

08/04/09; ;BC0172687130;DENSO BR;PIN ;PIN;0;;P.E.;;0;0;40;;

gostaria de saber como posso fazer para importar esse arquivo para access utilizando o asp mantendo suas colunas...

Obrigado, galera.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Não vou desistir não, vlw....

Achei esse script que promete importar o txt, segui certinho o que esta dizendo porém ele só me exibe essa mesnsagem de erro:

'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "<script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if
Segue o script:
<% Option explicit %>
<%
'Primeiramente iremos setar um valor de execução de script
'Pois dependendo do tamanho do arquivo o script pode exeder o tempo limite
Server.ScriptTimeout = 100000

'Iremos também fazer com que o script siga quando ocorrer um erro
'Para podermos tratá-lo após o script
on error resume next

'Criaremos a conexão com o banco de dados
Dim Conexao
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("dados/cadastros.mdb")

'Antes de criarmos o FSO, iremos exibir uma imagem de envio
'Somente para ilustrar pois dependendo do arquivo o processo pode ser demorado
response.write "<img src='inserindo.gif'>"

Dim objFSO

'Aqui que daremos início ao sistema
'Criaremos o objeto FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Dim varArquivo

'Agora, com o uso do FSO, iremos abrir o arquivo texto que iremos criar
Set varArquivo = objFSO.OpenTextFile(server.MapPath("cadastros.txt"), 1)

dim arrayLinha

'Agora que o arquivo já foi aberto, iremos ler linha por linha

'O comando AtEndOfStream determina que iremos repetir o processo abaixo
'até o fim do arquivo
Do while not varArquivo.AtEndOfStream

'Abaixo criaremos um array para separar os dados entre ponto-e-vírgula
'ReadLine é usado para indicar que iremos separar os dados desta linha
arrayLinha=split(varArquivo.ReadLine,";",-1,1)

'Com o array criado, iremos inserir de acordo com a ordem dos campos
'Usando 'arrayLinha(0)' nós determinamos cada dado pela ordem do arquivo de texto
'começando pelo zero que é respectivamente o campo nome e por ai adiante
conexao.execute "INSERT INTO cadastros (nome, nascimento, profissao, cidade, estado) VALUES ('"&arrayLinha(0)&"',"&arrayLinha(1)&",'"&arrayLinha(2)&"','"&arrayLinha(3)&"','"&arrayLinha(4)&"')"

'Passar para próxima linha
loop

'Destruiremos e fecharemos o FSO e o acesso ao arquivo de texto
varArquivo.Close
Set varArquivo = Nothing
Set objFSO = Nothing

'Destruiremos e fecharemos a conexão com o banco de dados
Conexao.close
Set Conexao = nothing

'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "<script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if

'Caso tudo tenha ocorrido corretamente, iremos para uma página
'para verificarmos se o conteúdo foi inserido corretamente
response.write "<script>location = 'exibir.asp'</script>"
%>

Obrigado pela ajuda pessoal....

Link para o comentário
Compartilhar em outros sites

  • 0
Não vou desistir não, vlw....

Achei esse script que promete importar o txt, segui certinho o que esta dizendo porém ele só me exibe essa mesnsagem de erro:

'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "&lt;script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if
Segue o script:
<% Option explicit %>
<%
'Primeiramente iremos setar um valor de execução de script
'Pois dependendo do tamanho do arquivo o script pode exeder o tempo limite
Server.ScriptTimeout = 100000

'Iremos também fazer com que o script siga quando ocorrer um erro
'Para podermos tratá-lo após o script
on error resume next

'Criaremos a conexão com o banco de dados
Dim Conexao
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("dados/cadastros.mdb")

'Antes de criarmos o FSO, iremos exibir uma imagem de envio
'Somente para ilustrar pois dependendo do arquivo o processo pode ser demorado
response.write "<img src='inserindo.gif'>"

Dim objFSO

'Aqui que daremos início ao sistema
'Criaremos o objeto FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Dim varArquivo

'Agora, com o uso do FSO, iremos abrir o arquivo texto que iremos criar
Set varArquivo = objFSO.OpenTextFile(server.MapPath("cadastros.txt"), 1)

dim arrayLinha

'Agora que o arquivo já foi aberto, iremos ler linha por linha

'O comando AtEndOfStream determina que iremos repetir o processo abaixo
'até o fim do arquivo
Do while not varArquivo.AtEndOfStream

'Abaixo criaremos um array para separar os dados entre ponto-e-vírgula
'ReadLine é usado para indicar que iremos separar os dados desta linha
arrayLinha=split(varArquivo.ReadLine,";",-1,1)

'Com o array criado, iremos inserir de acordo com a ordem dos campos
'Usando 'arrayLinha(0)' nós determinamos cada dado pela ordem do arquivo de texto
'começando pelo zero que é respectivamente o campo nome e por ai adiante
conexao.execute "INSERT INTO cadastros (nome, nascimento, profissao, cidade, estado) VALUES ('"&arrayLinha(0)&"',"&arrayLinha(1)&",'"&arrayLinha(2)&"','"&arrayLinha(3)&"','"&arrayLinha(4)&"')"

'Passar para próxima linha
loop

'Destruiremos e fecharemos o FSO e o acesso ao arquivo de texto
varArquivo.Close
Set varArquivo = Nothing
Set objFSO = Nothing

'Destruiremos e fecharemos a conexão com o banco de dados
Conexao.close
Set Conexao = nothing

'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "&lt;script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if

'Caso tudo tenha ocorrido corretamente, iremos para uma página
'para verificarmos se o conteúdo foi inserido corretamente
response.write "&lt;script>location = 'exibir.asp'</script>"
%>

Obrigado pela ajuda pessoal....

FUNCIONOU !!!

Só que esta acontecendo uma coisa estranha, só funciona um vez, ele insere o txt no banco uma vez e depois não insere mais, mesmo alterando os dados do txt, pra inserir novamente tenho que mudar o nome do arquivo que esta realizando o insert no bd, tipo, funcionou com inserir.asp, depois não funciona mais tenho que alterar o nome para inserir2.asp aí ele cadastra de novo..

nunca ví isso...

será que é algum problema do servidor ?

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

dcoder, procure evitar postagens desnecessárias... textos repetidos ou qualquer informação que não acrescente a sua dúvida!

Se você já fez uma postagem e é a última que aparece edite ela, ao invés de postar uma nova resposta... a coisa toda fica mais organizada dessa forma!

Pesquise sobre cookies e cache no google sua resposta estará lá! Apropósito... você continua sem efetuar as devidas pesquisas!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
pra que dar quote nos seus post do tópico????????

Galera esvaziando a cache funciona, mais por que isso esta ocorrendo ? como posso resolver isso ?

Obrigado

já tentou colocar a página para ficar em cache??? da uma peaquisada aquyi no forumq você acha como fazer

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...