Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Samfera

[Resolvido] Importar um .txt para access

Recommended Posts

sim, pode, utilzamos o include para um arquivo de conexão , para nao ter que ficar a toda pagina inluir o code, mas você pode usar assim, direto na pagina:

 

constring="provider=microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("db/quaddra.mdb")
Set conexao=Server.CreateObject("ADODB.Connection")
conexao.open constring

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, pode, utilzamos o include para um arquivo de conexão , para nao ter que ficar a toda pagina inluir o code, mas você pode usar assim, direto na pagina:

 

constring="provider=microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("db/quaddra.mdb")
Set conexao=Server.CreateObject("ADODB.Connection")
conexao.open constring

Foi exatamente o que eu fiz. Como era pra fazer o teste da importação, criei apenas uma página ASP, o banco ACCESS com a tabela e o arquivo "info.txt". Tudo no mesmo diretório só pra ver o processo de importação dos dados.

 

Não faço ideia pq não ta funcionando.

 

Forte abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente,

 

Não sei se posso fazer isso no forum. Se não puder me perdoem!!!

 

Se alguém tiver alguma rotina sobre o assunto funcionando, e puder, copiar para um FTP meu para que eu veja o funcionamento. Ficarei muito grato, pois, como vocês podem ver nas postagens anteriores, tentaram me ajudar de todas as formas e não deu certo.

 

Lembrando: Passarei usuário e senha do FTP somente se for possível.

 

Muito obrigado mesmo.

 

Sds,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se o diretório tem permissão para leitura de arquivos txt e mdb. Caso contrário, vai falar que não encontrou o arquivo.

 

Sobre passar o FTP é inviável. Melhor utilizar o Fórum para discutir o assunto e chegar ao resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se o diretório tem permissão para leitura de arquivos txt e mdb. Caso contrário, vai falar que não encontrou o arquivo.

 

Sobre passar o FTP é inviável. Melhor utilizar o Fórum para discutir o assunto e chegar ao resultado.

 

hargon,

 

O ditetório tem total permissão, inclusive, como postei anteriormente, quando faço upload dos arquivos para o provedor também da o mesmo erro. Será que é problema no provedor?

 

Forte abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro que ele dá, poste o numero e linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro que ele dá, poste o numero e linha

 

Aqui está o código:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<% 
Dim conn, fs, objFile, objFileTextStream, i, strSQL 
Dim strLine, strLinePart, strFirstName, strLastName, strGender, intAge 

 Set conn = Server.CreateObject("ADODB.Connection") 
 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("people.mdb")&";"
 Set fs = Server.CreateObject("Scripting.FileSystemObject") 

Set objFile = fs.GetFile ("info.txt")
Set objFileTextStream = objFile.OpenAsTextStream(1, 2) 
objFileTextStream.skipLine 

 Do While objFileTextStream.AtEndOfStream <> True 
   strLine = objFileTextStream.ReadLine 
   strLinePart = split(strLine,"|") 
   for i = 0 TO UBound(strLinePart) 
     If i = 0 Then 
       strFirstName = Trim(strLinePart(i)) 
     ElseIf i = 1 Then 
       strLastName = Trim(strLinePart(i)) 
     ElseIF i = 2 Then 
       strGender = Trim(strLinePart(i)) 
     ElseIF i = 3 then 
       intAge = Trim(strLinePart(i)) 
     End If 
   Next   

   intAge = Cint(intAge) 

   strSQL = "INSERT INTO tbl_people ([FNAME],[LNAME],[---],[AGE]) Values('"&strFirstName&"','"&strLastName&"','"&strGender&"','"&intAge&"')" 
   conn.Execute strSQL 
 Loop 

 objFileTextStream.Close: Set objFileTextStream = Nothing 
 Set fs = Nothing 
 conn.Close: Set conn = Nothing
%>
</body>
</html>

Essa é a mensagem de erro.

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A0035)
Arquivo não encontrado
/web/importatxt.asp, line 23

Lembrando que tenho os arquivos "people.mdb" e "info.txt" na mesma pasta.

 

Forte abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca a linha fs.GetFile(Server.MapPath("info.txt")) conforme foi falado e poste a mensagem de erro completa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca a linha fs.GetFile(Server.MapPath("info.txt")) conforme foi falado e poste a mensagem de erro completa.

 

hargon,

 

Segue a mensagem de erro depois da linha fs.GetFile(Server.MapPath("info.txt"))

 

 

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A0005)

Chamada de procedimento ou argumento inválido

/web/importatxt.asp, line 22

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

 

Página:

GET /web/importatxt.asp

 

Hora:

sexta-feira, 26 de março de 2010, 17:21:16

 

 

Mais informações:

Suporte da Microsoft

Obrigado pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que postar uma mensagem de erro, poste a linha onde é identificado o erro.

 

O que você tem na linha 22?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que postar uma mensagem de erro, poste a linha onde é identificado o erro.

 

O que você tem na linha 22?

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<% 
Dim conn, fs, objFile, objFileTextStream, i, strSQL 
 Dim strLine, strLinePart, strFirstName, strLastName, strGender, intAge 
 Set conn = Server.CreateObject("ADODB.Connection") 
 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("people.mdb")&";"
 Set fs = Server.CreateObject("Scripting.FileSystemObject") 

Set objFile = fs.GetFile(Server.MapPath("info.txt"))
Set objFileTextStream = objFile.OpenAsTextStream(1, 2)       <===================================== Linha 22 (Isso só ocorre quando uso o Server.MapPath)

 objFileTextStream.skipLine 

 Do While objFileTextStream.AtEndOfStream <> True 
   strLine = objFileTextStream.ReadLine 
   strLinePart = split(strLine,"|") 
   for i = 0 TO UBound(strLinePart) 
     If i = 0 Then 
       strFirstName = Trim(strLinePart(i)) 
     ElseIf i = 1 Then 
       strLastName = Trim(strLinePart(i)) 
     ElseIF i = 2 Then 
       strGender = Trim(strLinePart(i)) 
     ElseIF i = 3 then 
       intAge = Trim(strLinePart(i)) 
     End If 
   Next   
   intAge = Cint(intAge) 
   strSQL = "INSERT INTO tbl_people ([FNAME],[LNAME],[---],[AGE]) Values('"&strFirstName&"','"&strLastName&"','"&strGender&"','"&intAge&"')" 
   conn.Execute strSQL 
 Loop 

 objFileTextStream.Close: Set objFileTextStream = Nothing 
 Set fs = Nothing 
 conn.Close: Set conn = Nothing
%>


</body>
</html>

Postei o código apontando para a linha 22

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está correto. Mantenha o SERVER.MAPPATH. Agora o erro está em outro lugar.

Set objFileTextStream = objFile.OpenAsTextStream(1, 2)

Você não pode passar 2 como parâmetro.

 

Veja. Utilize 0, -1 ou -2.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está correto. Mantenha o SERVER.MAPPATH. Agora o erro está em outro lugar.

Set objFileTextStream = objFile.OpenAsTextStream(1, 2)

Você não pode passar 2 como parâmetro.

 

Veja. Utilize 0, -1 ou -2.

 

hargon,

 

Funcinou direitinho, porém, ele não pega a primeira linha do arquivo ".txt". Ou seja, o primeiro registro não é importado.

 

Utilizei o -2

 

Ps. O link que você passou é muito interessante.

 

 

 

Muito obrigado mesmo parceiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente dar um readline na primeira linha

 

strLine = objFileTextStream.ReadLine
response.write (strline)
response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente dar um readline na primeira linha

 

strLine = objFileTextStream.ReadLine
response.write (strline)
response.end()

Xam,

 

Descobri pq estava pulando a 1ª linha... Não havia notado aque tinha um "skipline" na linha 23, só foi eu remover e deu tudo certinho.

 

Quero agradecer a todos que me ajudaram, valeu mesmo pessoal.

 

Tópico resolvido!

 

 

Forte abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, amigo, parabéns...

 

precisando posta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.