Jump to content


Photo

Ler Txt E Separar Campos E Inserir No Banco


  • Faça o login para participar
2 replies to this topic

#1 Fad Web

Fad Web

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 29/07/2009, 12:25

Oi estou com dificuldades em fazer um sistema que leia o txt e inclua as informações no banco de dados. Conseguir fazer com que leia e monte o A STRING SQL so que monta errado a string ele não pega os valores corretos. me ajudem por favor abaixo o script e em seguida linhas do txt :

PAGINA ASP -------------------------------------------------------------------------------------------


<% @Language=vbScript %>
<HTML><HEAD><TITLE>LER TXT </TITLE></HEAD>
<BODY><CENTER>
<% dim final

'************************* Início pegar arquivo txt e gravar no banco ***************************
'criando a conexao com o banco de dados usando DSN
Dim Conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "dbq="&Server.MapPath("banco.mdb")&";driver={Microsoft Access Driver (*.mdb)}"

final = "</CENTER></BODY></HTML>"
On Error Resume Next
Set Obj = Server.CreateObject("Scripting.FileSystemObject")
if Obj.FileExists(server.MapPath("arquivo.txt")) then
Set arquivo = Obj.OpenTextFile(server.MapPath("arquivo.txt"), 1)
if Err then
Response.write "Ocorreu um erro tentando abrir o arquivo!"
Response.write final
Response.End
end if
Response.Write "Lista de E-mails<BR>"
Response.write "<HR>"
do while arquivo.AtEndOfStream=false
' a = arquivo.Readline
' response.write a & "<BR>"
' a = arquivo.Readline
' response.write a & "<HR>"
arrayLinha=split(arquivo.ReadLine,";",-1,1)
response.write arrayLinha(0)
response.write ("<br>")
' MONTA O INSERT - O problema esta aqui eu acho
sql = "INSERT INTO TABELA (NOMECOMPLETO, PRONTUARIO, ANOLETIVO, NASCIMENTO, CURSO_DESCRICAO, SERIE, CLASSE, MEDIABIM1, MEDIABIM2, MEDIABIM3, MEDIABIM4, NOTARECUP, PORCENFREQ) VALUES ('"&arrayLinha(0)&"','"&arrayLinha(1)&"','"&arrayLinha(2)&"','"&arrayLinha(3)&"','"&arrayLinha(4)&"','"&arrayLinha(5)&"','"&arrayLinha(6)&"','"&arrayLinha(7)&"','"&arrayLinha(8)&"','"&arrayLinha(10)&"','"&arrayLinha(11)&"','"&arrayLinha(12)&"','"&arrayLinha(13)&"')"
response.write (sql)
response.write ("<br>")
Response.write "<HR>"
'conexao.execute(sql)

loop 'Passar para próxima linha

REsponse.Write final
end if
'Destruiremos e fecharemos o FSO e o acesso ao arquivo de text
arquivo.close
'Destruiremos e fecharemos a conexão com o banco de dados
Conexao.close
Set Conexao = nothing

If Err <> 0 Then
'Aqui estamos imprimindo na tela do usuário a descrição do erro e seu número.
Response.Write Err.Description & " " & Err.Number & "<br>"
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Houve erro(s) !<br> </b></font>"
Else
'Se o objeto Err for igual a 0 será apresentado a mensagem de sucesso e os dados estarão salvos no caminho determinado acima
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Seus dados foram carregados com sucesso!</b></font>"
End If
Response
'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.write "Arquivo inexistente ou ocorreu algum problemana inserção.Verifique o layout do arquivo de texto."
'response.End()
end if

'************************* Deletando arquivo txt ***************************
'Set objFSO = server.CreateObject("Scripting.FileSystemObject")
'objfso.DeleteFile Server.MapPath("arquivo.txt"),true
'Set fso = Nothing

%>

TXT------------------------------------------------------------------------------------------------------

NOMECOMPLETO;PRONTUARIO;ANOLETIVO;NASCIMENTO;CURSO_DESCRICAO;SERIE;CLASSE;MEDIABIM1;MEDIABIM2;NOTARECUP;MEDIABIM3;MEDIABIM4;NOTARECUP;PORCENFREQ;
ANANDA GABRIEL SINGH 00554-1200915/01/2006 EDUCAÇÃO INFANTIL1B
DAVI CAMPOS ETCHEBEHERE 00524-0200905/12/2005 EDUCAÇÃO INFANTIL1B
KAHUA SOUSA VIEIRA 00558-4200904/05/2006 EDUCAÇÃO INFANTIL1B

#2 acooper

acooper

    Ativo

  • Usuários
  • 368 posts
  • Sexo:Masculino
  • Localidade:Recreio dos Bandeirantes

Posted 29/07/2009, 14:49

Caro, tenho esse script que cria uma tabela no Acess está funcionando, só adaptar nas suas necessidades.

Set Conexao1 = Server.CreateObject("ADODB.Connection")
Set Conexao2 = Server.CreateObject("ADODB.Connection")

Conexao1.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("excel.mdb")

Set cria = Conexao1.execute("Create table Import_Excel (Nome varchar(255), Origem varchar(255), NrDiscado varchar(255), DialPlan varchar(255), ChannelNo varchar(255), Channel varchar(255), Comando varchar(255), H varchar(255), Datachamada varchar(255), DataAtend varchar(255), Datatermino varchar(255), L varchar(255), M varchar(255), N varchar(255), O varchar(255), P varchar(255), Q varchar(255))")
Set cria = Nothing

Conexao2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("29012009.xls") & ";Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set excel = Conexao2.Execute("SELECT * FROM [29012009$]")
Do Until excel.EOF

Set insere = Conexao1.execute("insert into Import_Excel (Nome, Origem, NrDiscado, DialPlan, ChannelNo, Channel, Comando, H, Datachamada, DataAtend, Datatermino, L, M, N, O, P, Q) values ('"&excel("Nome")&"','"&excel("Origem")&"','"&excel("Nr Discado")&"','"&excel("Dial Plan")&"','"&excel("Channel + No")&"','"&excel("Channel")&"','"&excel("Comando")&"','"&excel("H")&"','"&excel("Data chamada")&"','"&excel("Data Atend.")&"','"&excel("Data término")&"','"&excel("L")&"','"&excel("M")&"','"&excel("N")&"','"&excel("O")&"','"&excel("P")&"','"&excel("Q")&"')")
Set insere = nothing


excel.MoveNext
Loop

Set excel = nothing

Conexao2.Close
Set Conexao2 = nothing

Conexao1.Close
Set Conexao1 = nothing
Andre Figueiredo
Analista de Sistema Senior
Tel.: + 55 - (21) 3824-4698- Cel: + 55 - (21) 9127-2772
E-Mail: andre.figueiredo@veirano.com.br
Skype: andre.figueiredo.veirano.com.br

#3 Fad Web

Fad Web

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 29/07/2009, 15:07

Caro, tenho esse script que cria uma tabela no Acess está funcionando, só adaptar nas suas necessidades.

Set Conexao1 = Server.CreateObject("ADODB.Connection")
Set Conexao2 = Server.CreateObject("ADODB.Connection")

Conexao1.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("excel.mdb")

Set cria = Conexao1.execute("Create table Import_Excel (Nome varchar(255), Origem varchar(255), NrDiscado varchar(255), DialPlan varchar(255), ChannelNo varchar(255), Channel varchar(255), Comando varchar(255), H varchar(255), Datachamada varchar(255), DataAtend varchar(255), Datatermino varchar(255), L varchar(255), M varchar(255), N varchar(255), O varchar(255), P varchar(255), Q varchar(255))")
Set cria = Nothing

Conexao2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("29012009.xls") & ";Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set excel = Conexao2.Execute("SELECT * FROM [29012009$]")
Do Until excel.EOF

Set insere = Conexao1.execute("insert into Import_Excel (Nome, Origem, NrDiscado, DialPlan, ChannelNo, Channel, Comando, H, Datachamada, DataAtend, Datatermino, L, M, N, O, P, Q) values ('"&excel("Nome")&"','"&excel("Origem")&"','"&excel("Nr Discado")&"','"&excel("Dial Plan")&"','"&excel("Channel + No")&"','"&excel("Channel")&"','"&excel("Comando")&"','"&excel("H")&"','"&excel("Data chamada")&"','"&excel("Data Atend.")&"','"&excel("Data término")&"','"&excel("L")&"','"&excel("M")&"','"&excel("N")&"','"&excel("O")&"','"&excel("P")&"','"&excel("Q")&"')")
Set insere = nothing


excel.MoveNext
Loop

Set excel = nothing

Conexao2.Close
Set Conexao2 = nothing

Conexao1.Close
Set Conexao1 = nothing


Obrigado Porem estou mexendo com TXT consigo fazer leitura porem nao consigo separar as informacoes atraves do ASP e inserir corretamente no ACCESS na parte de MONTAR A SQL so que da erro ele monta errado




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq