Jump to content


KBR

Member Since 09/09/2003
Offline Last Active 01/08/2011, 08:50
-----

Posts I've Made

In Topic: Verificar Sintaxe Do Email Antes De Cadastar

27/05/2011, 12:13

Utilize o on error resume next para tratar esse tipo de erro.

In Topic: Sistema De Importação De Dados

21/10/2010, 19:00

Ainda não deu certo.

Vou explicar passo a passo o que estou fazendo para que possa verificar onde estou errando. O que eu teria que fazer aqui seria um array dento de outro array, porque primeiro preciso dividir as linhas e depois dividir os campos de cada linha. Segue abaixo meu código... o resultado vou postar como se meu arquivo de importação tivesse 3 linhas/registros.

importacao = request("importacao")
importacao = replace(importacao," ","|")
importacao = replace(importacao,"||||||||","|")
importacao = replace(importacao,"|||||||","|")
importacao = replace(importacao,"||||||","|")
importacao = replace(importacao,"|||||","|")
importacao = replace(importacao,"||||","|")
importacao = replace(importacao,"|||","|")
importacao = replace(importacao,"||","|")
importacao = replace(importacao,chr(13),"<br>")
importacao = split(importacao,"<br>")

for each produto in importacao
	
	response.write produto&"<br>"
	
next

RESULTADO

000001|4.2500|6.4000|1.650|1.950|2.550|-3.0000
000002|1.7000|2.4000|2.260|2.470|2.580|-3.0000
000003|0.5900|0.9000|8.600|9.440|10.780|3.0000


Até aí maravilha, consegui dividir as linhas. Agora preciso capturar os campos, do campo1 ao campo7, ou seja, criar um outro array dividindo pelo |

importacao = request("importacao")
importacao = replace(importacao," ","|")
importacao = replace(importacao,"||||||||","|")
importacao = replace(importacao,"|||||||","|")
importacao = replace(importacao,"||||||","|")
importacao = replace(importacao,"|||||","|")
importacao = replace(importacao,"||||","|")
importacao = replace(importacao,"|||","|")
importacao = replace(importacao,"||","|")
importacao = replace(importacao,chr(13),"<br>")
importacao = split(importacao,"<br>")

for each produto in importacao
	
	campo = split(produto,"|")
	codigo = campo(0)
	preco1 = campo(1)
	
next

ERRO

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A0009)
Subscrito fora do intervalo: '[number: 1]'
/89embalagens.com.br/teste.asp, line 27


Onde a linha 27 é preco1 = campo(1)

Se eu deixo somente o campo(0) ele não dá erro e me retorna somente o primeiro campo de cada registro, mas do 1 em diante ele dá esse erro.

Alguém sabe o que pode ser?

Abraços e obrigado.

Resolvi da seguinte maneira

Set upl = Server.CreateObject("SoftArtisans.FileUp")
upl.Path = "e:\vhosts\\httpdocs\__upl\"
upl.Save
arquivo="dados.txt"
upl.form("Arquivo").SaveAs "e:\vhosts\\httpdocs\__upl\"&arquivo

set confile = createObject("scripting.filesystemobject") 
set fich = confile.OpenTextFile(server.mappath("../__upl/dados.TXT")) 

conta=0

Do while not fich.AtEndOfStream
conta=conta+1
Linha = fich.ReadLine()
Linha = replace(Linha," ","|")
Linha = replace(Linha,"||||||||","|")
Linha = replace(Linha,"|||||||","|")
Linha = replace(Linha,"||||||","|")
Linha = replace(Linha,"|||||","|")
Linha = replace(Linha,"||||","|")
Linha = replace(Linha,"|||","|")
Linha = replace(Linha,"||","|")

arrayLinha = split(linha, "|", -1, 1)

if ubound(arrayLinha)=6 then
	
	codigo = int(arrayLinha(0))
	custo = replace(formatnumber(replace(arrayLinha(1),".",","),2),",",".")
	venda = replace(formatnumber(replace(arrayLinha(2),".",","),2),",",".")
	revenda = replace(formatnumber(replace(arrayLinha(3),".",","),2),",",".")
	promocional = replace(formatnumber(replace(arrayLinha(4),".",","),2),",",".")
	normal = replace(formatnumber(replace(arrayLinha(5),".",","),2),",",".")
	estoque = cdbl(replace(arrayLinha(6),".0000",""))
	
	sql = "update tab_produtos set valor='"&normal&"', valor_promocional='"&promocional&"', valor_custo'"&custo&"', valor_venda='"&venda&"', valor_revenda='"&revenda&"' where codigopadrao="&codigo&""
	connect.execute(sql)
	'response.write sql&"<br>"
	
'response.write codigo&"<br>"

else
	
	if conta=1 then
	session("msg")= "<script language = javascript>alert('Erro!')</script>"
	response.redirect "?"
	end if
	
end if

loop

fich.close()

session("msg")= "<script language = javascript>alert('Valores atualizados com sucesso!')</script>"
response.redirect "?"

In Topic: Sistema De Importação De Dados

20/10/2010, 13:11

Como as colunas são de tamanho fixo, o negócio é usar Mid. Se a importação não for parte do sistema, mas só uma coisa que você precise fazer agora, dependendo do banco, ele pode ter algum assistente de importação que poupe você do trabalho de escrever o código. O Access e o SQL Server eu sei que tem.

É uma aplicação que eu estou desenvolvendo e o banco é MySql.

Como eu usaria MID? Eu não teria que usar um split e um array antes?

Abraços.

IPB Skin By Virteq