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

(Resolvido) [Microsoft][ODBC Excel Driver] Numeric field overflow.


Clauido José

Pergunta

Pessoal crei um sistema onde faço uma importação do exccel para o sql server bom ele tava funcionando beleza até ontem quando fomos importar um arquivo xls. O erro que ocrreu foi o seguinte.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Excel Driver] Numeric field overflow.

/dth/importadiaria.asp, line 226

O gozado que o erro ocorre no rs.movenext, este sistema está hospedado na locaweb.

segue o script da pagina.

<!--#include file="strCon.asp"-->
<%
dim strTitulo,strTexto,strNew, Conexao, strSql,myVal
call abreConexao()
'Cria um objeto para verficar o caminho o e nome do arquivo para importação
Set objUpload = Server.CreateObject("Dundas.Upload.2")
'Cria conexão Planilha
Set dbXLS = Server.CreateObject("ADODB.Connection") 
'Começa a função para exportar o arquivo para excell
dim i
i = 0
'Configura o objeto com o tamanho do arquivo
objUpload.MaxFileSize = 2114400
objUpload.UseUniqueNames = False
strCaminho = "\DTH\PLANILHA"
objUpload.Save Server.MapPath("\DTH\PLANILHA") 
strCaminho = objUpload.Files.Item("txFile").Path
'Response.Write(strCaminho)
'response.End()

'Abre o arquivo excell
dbXLS.Open "Driver=Microsoft Excel Driver (*.xls);DBQ=" & strCaminho

'Cria um array para ler os dados da planilha excell
Set rsXLS = dbXLS.OpenSchema(20)

'Posiciona o ponteiro no primeiro registro da tabela excell
rsXLS.MoveFirst
TabPrecos = rsXLS("TABLE_NAME")

SQL = "Select * from [" & tabPrecos & "]"
rsDados.open sql, dbXLS,1,1
if rsDados.recordCount>0 then
 'Começa o loop para tranfirir o dados da tabela excell para o access.
 While not rsDados.eof 
  sNoOs111=rsDados(0)    
  sTipo_OS=rsDados(2)
  sProduto=rsdados(3)
  sCliente=rsdados(4)
  sEnderec=rsdados(5)
  sBairro1=rsdados(6)
  sCIDADE1=rsdados(7)
  sCep1111=rsdados(8)
  sES11111=rsdados(9)
  sTipo_Re=rsdados(10)
  sTermina=rsdados(11)
  sPeriodo=rsdados(13)'PERIODO
  sQtd_Pto=rsdados(14)'QTD PONTOS
  sTr_As_T=rsdados(15)'TAREFAS ASSIST.
  sRE11111=rsdados(16)'TECNICO
  sEmpresa=rsdados(17)'EMPRESA
  sStatus1=rsDados(18)'STATUS
  sContage=rsdados(23)'CONTAGEM
  sTecnico=rsdados(24)'TECNICO
  sObsServ=rsDados(25)'OBS DO SERVICO
  sTarefa1=rsdados(26)'TAREFAS
  sDescric=rsDados(29)'DESCRICAO
  sResulta=rsDados(30)'RESULTADO
  sServico=rsDados(31)'SERVICO    
  sN111111=rsdados(34)'NO
  sPacote1=rsdados(42)'PACOTE
  sObserva=rsdados(43)'OBSERVACAO
  sAge1111=rsdados(44)'AGE
  sAltEmpr=rsdados(47)'ALTERA EMPRESA
  sAltTecn=rsdados(46)'ALTERA TECNICO
  sidServi=rsdados(50)'SERVICO
  sNoOsGar=rsdados(51)'NO GARANTIA
  sTecGara=rsDados(53)'TEC GARANTIA

  if Trim(rsDados(04))<>"" then sCliente = Replace(rsDados(04),"'","´") else sCliente = rsDados(04) end if
  if Trim(rsDados(05))<>"" then sEnderec = Replace(rsDados(05),"'","´") else sEnderec = rsDados(05) end if
  if Trim(rsDados(06))<>"" then sBairro1 = Replace(rsDados(06),"'","´") else sBairro1 = rsDados(06) end if
  if Trim(rsDados(07))<>"" then sCidade1 = Replace(rsDados(07),"'","´") else sCidade1 = rsDados(07) end if    
  if Trim(rsDados(08))<>"" then sCep1111 = Replace(rsDados(08),"'","´") else sCep1111 = rsDados(08) end if
  if Trim(rsDados(09))<>"" then sEstado1 = Replace(rsDados(09),"'","´") else sEstado1 = rsDados(09) end if
  if Trim(rsDados(10))<>"" then sTipoRes = Replace(rsDados(10),"'","´") else sTipoRes = rsDados(10) end if
  if Trim(rsDados(11))<>"" then sTermina = Replace(rsDados(11),"'","´") else sTermina = rsDados(11) end if
  if Trim(rsDados(13))<>"" then sPeriodo = Replace(rsDados(13),"'","´") else sPeriodo = rsDados(13) end if
  if Trim(rsDados(14))<>"" then sQtd_Pto = Replace(rsDados(14),"'","´") else sQtd_Pto = rsDados(14) end if
  if Trim(rsDados(15))<>"" then sTr_As_T = Replace(rsDados(15),"'","´") else sTr_As_T = rsDados(15) end if
  if Trim(rsDados(25))<>"" then sObsServ = Replace(rsDados(25),"'","´") else sObsServ = rsDados(25) end if
  if Trim(rsDados(26))<>"" then sTarefa1 = Replace(rsDados(26),"'","´") else sTarefa1 = rsDados(26) end if
  if Trim(rsDados(29))<>"" then sDescric = Replace(rsDados(29),"'","´") else sDescric = rsDados(29) end if
  if Trim(rsDados(30))<>"" then sResulta = Replace(rsDados(30),"'","´") else sResulta = rsDados(30) end if            
  if Trim(rsDados(42))<>"" then sPacote1 = Replace(rsDados(42),"'","´") else sPacote1 = rsDados(42) end if
  if Trim(rsDados(43))<>"" then sObserva = Replace(rsDados(43),"'","´") else sObserva = rsDados(43) end if
  if Trim(rsDados(47))<>"" then sAltEmpr = Replace(rsDados(47),"'","´") else sAltEmpr = rsDados(47) end if 
  if Trim(rsDados(46))<>"" then sAltTecn = Replace(rsDados(47),"'","´") else sAltTecn = rsDados(44) end if
  if sQtd_Pto="" then sQtd_Pto=0 end if
       
  'Procura o estado do Cliente na tabela de Estado
  strSql = "Select * from tabEstados where Estado = '" & rsDados(09) & "'"
  rsEstado.Open strSql, Conexao    
  if rsEstado.Eof then
   strEstado = "São Paulo"
   strSql = "Select * from tabEstados where Estado = '" & strEstado & "'"
   if rsEstado.State = 1 then rsEstado.Close
   rsEstado.Open strSql, Conexao
   if not rsEstado.Eof then sIdEstad = rsEstado("idEstado")
  else
   sIdEstad = rsEstado("idEstado")
  end if
  
  rsEstado.close
  'Procura a cidade do Cliente na Tabela de Cidade
  strSql = "Select * from tabCidades where Cidade = '" & rsDados(7) & "'"
  'response.Write(strSql)
  'Response.End()
  if rsCidade.State = 1 then rsCidade.Close
  rsCidade.open strSql, Conexao
  if Not rsCidade.Eof then sIdCidad = rsCidade("idCidade") 
  
  rsCidade.Close   
  
  'Procura se cliente já esta cadastro na tabela de Cliente e grava novo ou atualiza os dados
  strSql = "Select * from tabCliente Where NomeCliente = '" & rsDados(4) & "'"
  if rsCliente.state = 1 then rsCliente.close
  set rsCliente = Conexao.Execute(strSql)
  if rsCliente.Eof then
   dim Campos 
   Sql = "Insert Into tabCliente (NoOs,NomeCliente,Endereco,Bairro,Cep,idCidade,IdEstado,TipoResidencia) values (" 
   Sql = Sql & sNoOs111 & ",'" & sCliente & "','" & sEnderec & "','" & sBairro1 & "','" & sCep1111 & "'," 
   Sql = Sql & sIdCidad & ","  & sIdEstad & ",'"  & sTipoRes &  "')"
   'Response.Write(sql)
   'Response.End()
   Conexao.Execute(Sql)    
  end if
  
  
  
  
  'Procura o id do Cliente na tabela de Clientes
  strSql = "Select * from tabCliente where NomeCliente = '" & rsDados(4) & "'"
  if rsCliente.State = 1 then rsCliente.close
  set rsCliente = Conexao.Execute(strSql)
  IF rsCliente.Eof then sIdClie =0  else sIdClien=rsCliente("idCliente")
   
  'Procura o id do Tipo da Os na tabela de TipoOs
  strSql = "SELECT tabTipoOs.idTipoOs, tabTipoOs.Descricao FROM tabTipoOs "
  strsql = strSql & " where  tabTipoOs.Descricao = '" & rsDados(2) & "'"   
  if rsTipoOs.State = 1 then rsTipoOs.Close
  rsTipoOs.Open strSql,Conexao, 1,1
  if not rsTipoOs.eof then 
   sIdTipOs = rsTipoOs("idTipoOs")
  else 
   strSql = "Insert into tabTipoOs (Descricao) values ('" & rsDados(2) & "')"
   'response.Write(strSql)
   'response.End()
   Conexao.Execute(StrSql)
   'Procura o id do Tipo da Os na tabela de TipoOs
   strSql = "SELECT tabTipoOs.idTipoOs, tabTipoOs.Descricao FROM tabTipoOs "
   strsql = strSql & " where  tabTipoOs.Descricao = '" & rsDados(2) & "'"   
   if rsTipoOs.State = 1 then rsTipoOs.Close
   rsTipoOs.Open strSql,Conexao, 1,1
   if not rsTipoOs.eof then sIdTipOs = rsTipoOs("idTipoOs") end if
  end if
  
  'Procura o id do Produto na tabela de Produtos
  strSql = "Select * from tabProdutos where DescricaoProduto ='" & rsDados(3) & "'"
  set rsProdutos = Conexao.Execute(strSql)
  if rsProdutos.eof then sIdProdu = 0 else sIdProdu = rsProdutos("idProduto") end if
  
  strSql = "Select * from tabStatus where CODIGO = '" & rsDados(18) & "'"
  set rsStatus = Conexao.Execute(StrSql)
  if rsStatus.Eof then 
   sIdStatu = 0 
  elseif not rsStatus.Eof then 
   sIdStatu = rsStatus("idStatus") 
  end if    
  rsStatus.Close  

  'Procura o id do Servico
  if sServico = " " then sServ ="Inst" else sServ= rsDados(50) end if
  strSql = "Select * from tabServico where Codigo = '" & sServ & "'"
  'Response.Write(strsql)
  'Response.End()
  set rsServico = Conexao.Execute(strSql)
  if rsServico.eof then
   sidServi = 0
  elseif not rsServico.eof then  
   sidServi = cint(rsServico("idServico"))
  end if
  rsServico.close    
  if rsBusca.State=1 then rsBusca.Close
  strSql = "Select * from tabDth where NoOs = " & sNoOs111  & " and DatCompromisso='" &(sDatComp) & "'"
  rsBusca.Open strSql,Conexao,1,1
  scodServ="INST"
  if rsBusca.RecordCount=0then  
   Campos = "Terminal,Periodo,QtdPontos,TarAssisTecnico,ObsServico,Tarefa,Descricao,Resultado,Pacote,Observacao,"
   campos = campos & "AGE,codservico,idServico,idStatus,ContagemDia,NoOs,idTipoOs,idProduto,idCliente,idempresa,idTecnico"
   if trim(rsDados(1)) <> Null or trim(rsDados(1)) <> " " then 
    campos = campos & ",DatCompromisso" 
   end if
   if trim(rsDados(12)) <> Null Or trim(rsDados(12)) <> " " then
    campos = campos & ",DatSolicitada" 
   end if
   
   if left(sTermina,5) = "(011)" then sTermina = "011-" & right(sTermina,8)
   'Response.Write(sTermina)
   'Response.end()
   tabela="tabDth" 'nome da tabela que ira receber os dados
   sql = "insert into " & tabela & "(" & campos & ") values ('" 
   sql = sql & sTermina & "','" & sPeriodo & "','" & sQtd_Pto & "','" & sTr_As_T & "','"
   sql = sql & sObsServ & "','" & sTarefa1 & "','" & sDescric & "','" & sResulta & "','"
   sql = sql & sPacote1 & "','" & sObserva & "','" & sAge1111 & "','" & sCodServ & "',"
   sql = sql & sidServi & ","   & sidStatu & ","   & sContage & ","   & sNoOs111 & ","
   sql = sql & sIdTipOs & ","   & sIdProdu & ","   & sIdClien & ","   & 0 & ","   & 0
   if trim(rsDados(1)) <> Null or trim(rsDados(1)) <> " " then 
    dia = day (rsDados(1))
    mes = month (rsDados(1))
    ano = year(rsDados(1))     
    sDatComp=(ano&"/"&mes&"/"&dia)   
    sql = sql & ",'" & (sDatComp) & "'"
   end if
   if trim(rsDados(12)) <> Null or trim(rsDados(12)) <> " " then 
    dia = day(rsdados(12))
    mes = month(rsdados(12))
    ano = year(rsdados(12))    
    sDat_sol=(ano&"/"&mes&"/"&dia)   
    sql = sql & ",'" & (sDat_sol) & "'"
   end if  
   sql = sql & ")"
   Conexao.Execute(sql)
  end if
  i = i + 1
  rsDados.moveNext
 wEnd
'end if
 status = "O arquivo foi importado com sucesso"
end if
data = now()
dia = day(data)
mes = month(data)
ano = year(data)
sdata = ano & "/" & mes & "/" & dia 
sHora = time()   
status="Usuário foi salva com sucesso"
campos = "idUsuario,idEmpresa,Data,hora,Descricao"
valores = session("idUsuario") & "," & session("idEmpresa") & ",'" & sData & "','" & sHora & "','"
valores = valores & "Impora At Externa'"
strSql="insert into tabLogui (" & Campos & ") values (" & valores & ") "
Conexao.Execute(strSql)
call fechaConexao()
set rsDados=Nothing
set rsCliente=Nothing
set rsProdutos=Nothing
set rsStatus=Nothing
set rsServico=Nothing
%>
<script>document.location.href="importarxls.asp"</script>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá Clauido,

A locaWeb é maravilha....Ne...Mas sempre tem uma alma boa para ajudar a revelar a bondade humana deles.

A Dir LocaWeb colocou um tempo de 15 segundos, mas uma vez 15 segundos de time de morte do servidor MySQL, em outras palavras, se sua conexão ficar aberta por mais de 15 segundos sem fazer nada ela é fechada e apresentado um erro qualquer para fazer você estourar a cabeça com suas ideais brilhantes que não ira resolver nada. Maravilhosa tecnologia ne Clauido.

Mas vamos ao problema de fato. Você tem um upload na mesma página certo, e sua conexão está sendo chamada antes do upload, com isto o upload leva mais de 15 segundos, ou seja, quando for executar a string já teve morte seu servidor e te da um erro qualquer para você ficar feliz e colocar seu dom de programador em ação (coisa que o monopólio adora e se diverte com isto, fora a “graninha” extra que pode entrar).

<!--#include file="strCon.asp"-->
SQL = "Select * from [" & tabPrecos & "]"

Colocando assim depois do upload seu script vai rodar, agora esta viadagem tecnológica é útil na China ou Japão que lá eles tem dinheiro para contratar um plano que funciona sem esta maravilhosa tecnológica para “melhorar” o desempenho do servidor web e MySQL, ou seja, quem tem dinheiro neste país só não mata os pobres porque existe o ONU para estourar os miolos destas pessoas amáveis e inovadoras em tecnologia. A Bósnia tinha muita tecnologia e pessoas inovadoras e a ONU foi lá ajudar no desenvolvimento delas e dar uma “balinha” para se organizarem mais rápido.

A braços e saiba que programação no Brasil está sendo banalizada e “mercenalizada “ por sitizinhos que fizeram um monopólio ridículo neste país sobre host e desenvolvimento web. Espero que um dataCecnter Americano rebente tais sitisinhos com a crise americana e descubra o mercado latino.

Desculpe o desabafo em seu post Clauido. Abraços e fica com Deus.

Editado por Marcio Benvenuto de Lima
Link para o comentário
Compartilhar em outros sites

  • 0

olha não sou eu eu trampo em uma empresa e eles optaramo por hospedar na localweb,por isso mas pensei que tinha resolvido esse problema mas não resolvi mas o gosado que na minha maquina esse script funciona

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...