Ir para conteúdo

POWERED BY:

Arquivado

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

marflorencio

Memória Vs TXT

Recommended Posts

Bem utilizo o Access como base de dados, e tenho dois problemas:01) Eu gero um arquivo TXT mensalmente para enviar ao Banco e na minha base de dados tenho uma tabela chamada "Banco" que contem um campo chamado "Lote" então toda vez que eu vou gerar o Arquivo TXT ele Lê o valor armazendao no campo "Lote" e no final do processo de gerar o TXT ele acrescenta uma unidade no campo "Lote" sendo assim eu nunca irei ter arquivos com Lotes iguais. Só que o que acontece é o seguinte quando ele lê a informação ele pega o que estar lá no campo "Lote" e soma + 01 antes de gravar no TXT e na hora de acrescentar uma unidade ele acrescenta duas. Pq?? o código esta em baixo:<%response.buffer = trueIf Session("Acesso") > 1 Or Session("Acesso") = "" ThenElse%><!--#include virtual="adovbs.inc"--><!--#include file="conexao.asp"--><%''Neste bloco deve ter algum problema!!!''***********************************************************************SQL3="SELECT * FROM BANCO WHERE CODBANCO='001'"set brasil = conexao.execute(SQL3)'''Pego o valor do Lote que será gravado no arquivo TXT''Lote=brasil(2)brasil.closeset brasil= nothing'***********************************************************************setlocale("PT-BR")Session.lcid = 1034Mes=Month(Now())IF Mes < 10 ThenMes=0&Mesend IFdia=Day(Now())IF dia <10 thendia=0&diaend ifdata=request.form("Data")DebAno =DatePart("yyyy",data)DebMes = DatePart("m",data)IF DebMes < 10 ThenDebMes=0&DebMesend IFDebDia = DatePart("d",data)IF DebDia <10 thenDebDia=0&DebDia end if'Incluo quantos 0000 forem necessários a frente de Lote para que eu tenha 06 digitosselect case len(Lote)case 1 LoteArquivo="00000"&Trim(Lote)case 2 LoteArquivo="0000"&Trim(Lote)case 3 LoteArquivo="000"&Trim(Lote)case 4 LoteArquivo="00"&Trim(Lote)case 5 LoteArquivo="0"&Trim(Lote)case 6 LoteArquivo=Trim(Lote) end select'SQL para gerar as informações que serão enviadas para o Banco, aqui não tenho problemas'SQL2 soma o valor que será enviado, aqui não tenho problemasSQL="SELECT m.CODMATRIC,md.CODMEDDESC,b.BCOAGE,b.BCOCTA,md.VALOR FROM MEDICO m,MEDDESC md, MEDBANCO b WHERE m.CODMATRIC=b.CODMATRIC AND m.CODMATRIC=md.CODMATRIC AND b.BCOCOD='001' AND b.POSICAO='0' order by m.codmatric"SQL2="SELECT Sum(md.valor) as valor2 FROM MEDICO m,MEDDESC md, MEDBANCO b WHERE m.CODMATRIC=b.CODMATRIC AND m.CODMATRIC=md.CODMATRIC AND b.BCOCOD='001' AND b.POSICAO='0'"set bb = conexao.execute(SQL)set bbrasil = conexao.execute(SQL2)Path="c:/inetpub/wwwroot/BBRASIL/Remessa/"NomeArquivo="DBT627.REM"set fs = Server.CreateObject("Scripting.FileSystemObject")set arquivo = fs.opentextfile(Path&NomeArquivo, 2, true, 0)''O meu problema estar justamente aqui, na hora de imprimir o LoteArquivo no arquivo TXT'ele imprimi tudo errado, como descrevir acima'''texto_todo = "A100000 nome da entidade 001BANCO DO BRASIL S.A "&year(now())&Mes&dia&LoteArquivo&"04DEBITO AUTOMATICO "& vbcrlf arquivo.write texto_todoseq=1valor=0 Do While not bb.EOF select case len(bb.fields(0))case 1 codmatric=bb.fields(0)&" "case 2 codmatric=bb.fields(0)&" "case 3 codmatric=bb.fields(0)&" "case 4 codmatric=bb.fields(0)&" "case 5 codmatric=bb.fields(0)&" "case 6 codmatric=bb.fields(0) end selectconta=Mid(Trim(bb.fields(3)),1,InStr(Trim(bb.fields(3)),"-")-1) select case len(conta)case 3 contacor=conta&" "case 4 contacor=conta&" "case 5 contacor=conta&" "case 6 contacor=conta&" "case 7 contacor=conta&" "case 8 contacor=conta&" " end select IF bb.fields(4)="5" THEN texto_todo ="E"&codmatric&" "&Trim(Left(bb.fields(2),4))&contacor&DebAno&DebMes&DebDia&"000000000000"&Trim(bb.fields(4))&"00"&"03"&" "&" "&"0"& vbcrlf 'caracter Enter no vb ELSE texto_todo ="E"&codmatric&" "&Trim(Left(bb.fields(2),4))&contacor&DebAno&DebMes&DebDia&"00000000000"&Trim(bb.fields(4))&"00"&"03"&" "&" "&"0"& vbcrlf 'caracter Enter no vb END IF bb.MoveNext seq=seq+1 arquivo.write texto_todo Loop seq=seq+1vlr=bbrasil.fields(0)valor=valor+vlr select case len(seq)case 1 sequencia="00000"&Trim(seq)case 2 sequencia="0000"&Trim(seq)case 3 sequencia="000"&Trim(seq)case 4 sequencia="00"&Trim(seq)case 5 sequencia="0"&Trim(seq)case 6 sequencia=Trim(seq) end select select case len(valor)case 1 total="00000000000000"&Trim(valor)&"00"case 2 total="0000000000000"&Trim(valor)&"00"case 3 total="000000000000"&Trim(valor)&"00"case 4 total="00000000000"&Trim(valor)&"00"case 5 total="0000000000"&Trim(valor)&"00"case 6 total="000000000"&Trim(valor)&"00" end selecttexto_todo = "Z"&sequencia&total&" "& vbcrlf arquivo.write texto_todoarquivo.closebb.closeset arquivo = nothingset fs = nothingset bb = nothing%>02)O outro problema é o seguinte: Toda vez que eu vou gerar um TXT como o código abaixo ele não pega o campo SEQFAM e o PARENTESCO para gravar no TXT isso ocorre na minha máquina de vez em quando +- a cada 04 arquivo certo ele gera um errado, o que será???, o Meu SQL funciona direitinho o problema acho que é no LOOP do meu WHILE:<!--#include virtual="adovbs.inc"--><!--#include file="conexao.asp"--><%setlocale("PT-BR")Session.lcid = 1034Mes=Month(Now())IF Mes < 10 ThenMes=0&Mesend IFdia=Day(Now())IF dia <10 thendia=0&diaend ifAno=replace(Year(now()),"20","",1)SQL="SELECT MEDICO.CODCRM, UTI_DEPENDENTE.NOME, UTI_DEPENDENTE.SEXO, UTI_DEPENDENTE.DATANASC, MEDICO.ENDERECO, MEDICO.BAIRRO, MEDICO.CIDADE, MEDICO.CEP, MEDICO.UFRESIDENCIA, MEDICO.DDD, MEDICO.FONERES, UTI_DEPENDENTE.SEQFAM, UTI_DEPENDENTE.CODPARENTESCO "&_"FROM MEDICO INNER JOIN UTI_DEPENDENTE ON MEDICO.CODMATRIC = UTI_DEPENDENTE.CODMATRIC ORDER BY MEDICO.CODMATRIC UNION "&_"SELECT CODCRM, NOME, SEXO, DATANASC, ENDERECO, BAIRRO, CIDADE, CEP, UFRESIDENCIA, DDD, FONERES, 0, 01 FROM MEDICO WHERE ENDERECO<>'' AND ENDERECO IS NOT NULL AND SITUACAO='A'"'SQL="SELECT CODCRM, NOME, SEXO, DATANASC, ENDERECO, BAIRRO, CIDADE, CEP, UFRESIDENCIA, DDD, FONERES FROM MEDICO WHERE ENDERECO<>'' AND ENDERECO IS NOT NULL AND SITUACAO='A' ORDER BY CODMATRIC"set boleto = conexao.execute(SQL)Path="c:/inetpub/wwwroot/SIND/"NomeArquivo="TITULAR_"&Mes&Ano&".TXT"set fs = Server.CreateObject("Scripting.FileSystemObject")set arquivo = fs.opentextfile(Path&NomeArquivo, 2, true, 0)NomeArquivo2="TITULAREndereco_"&Mes&Ano&".TXT"set fs2 = Server.CreateObject("Scripting.FileSystemObject")set arquivo2 = fs2.opentextfile(Path&NomeArquivo2, 2, true, 0) Do While not boleto.EOF select case len(boleto.fields(0))case 1 codmatric=boleto.fields(0)&" "case 2 codmatric=boleto.fields(0)&" "case 3 codmatric=boleto.fields(0)&" "case 4 codmatric=boleto.fields(0)&" "case 5 codmatric=boleto.fields(0)&" "case 6 codmatric=boleto.fields(0)&" " end select'***************************************************************'AQUI ENTRARA O CALCULO DO SEQFAM NOS ESPAÇOS 12 A 13 COM VALORES 00, 01, 02, 03SEQFAM="0"&boleto.fields(11)'***************************************************************IF len(boleto.fields(1))>50 THEN NOME=Mid(Trim(boleto.fields(1)),1,50) ELSE select case len(boleto.fields(1))case 8 NOME=boleto.fields(1)&" "case 9 NOME=boleto.fields(1)&" "case 10 NOME=boleto.fields(1)&" "case 11 NOME=boleto.fields(1)&" "case 12 NOME=boleto.fields(1)&" "case 13 NOME=boleto.fields(1)&" "case 14 NOME=boleto.fields(1)&" "case 15 NOME=boleto.fields(1)&" "case 16 NOME=boleto.fields(1)&" "case 17 NOME=boleto.fields(1)&" "case 18 NOME=boleto.fields(1)&" "case 19 NOME=boleto.fields(1)&" "case 20 NOME=boleto.fields(1)&" "case 21 NOME=boleto.fields(1)&" "case 22 NOME=boleto.fields(1)&" "case 23 NOME=boleto.fields(1)&" "case 24 NOME=boleto.fields(1)&" "case 25 NOME=boleto.fields(1)&" "case 26 NOME=boleto.fields(1)&" "case 27 NOME=boleto.fields(1)&" "case 28 NOME=boleto.fields(1)&" "case 29 NOME=boleto.fields(1)&" "case 30 NOME=boleto.fields(1)&" "case 31 NOME=boleto.fields(1)&" "case 32 NOME=boleto.fields(1)&" "case 33 NOME=boleto.fields(1)&" "case 34 NOME=boleto.fields(1)&" "case 35 NOME=boleto.fields(1)&" "case 36 NOME=boleto.fields(1)&" "case 37 NOME=boleto.fields(1)&" "case 38 NOME=boleto.fields(1)&" "case 39 NOME=boleto.fields(1)&" "case 40 NOME=boleto.fields(1)&" "case 41 NOME=boleto.fields(1)&" "case 42 NOME=boleto.fields(1)&" "case 43 NOME=boleto.fields(1)&" "case 44 NOME=boleto.fields(1)&" "case 45 NOME=boleto.fields(1)&" "case 46 NOME=boleto.fields(1)&" "case 47 NOME=boleto.fields(1)&" "case 48 NOME=boleto.fields(1)&" "case 49 NOME=boleto.fields(1)&" "case 50 NOME=boleto.fields(1) end select END IF'**************************************************************SEXO=boleto.fields(2)IF SEXO="M" THEN SEXO="01"ELSE SEXO="02"END IF'***************************************************************'AQUI ENTRARA O CALCULO DO PARENTESCOPARENTESCO=boleto.fields(12)IF PARENTESCO=1 THEN PARENTESCO="0"&PARENTESCO END IF'***************************************************************DATANASC=boleto.fields(3)DataMes=Month(DATANASC)IF DataMes < 10 ThenDataMes=0&DataMesend IFDataDia=Day(DATANASC)IF DataDia <10 thenDataDia=0&DataDiaend ifDataAno=Year(DATANASC)DATANASC=DataDia&"/"&DataMes&"/"&DataAno'***************************************************************IF len(boleto.fields(4))>50 THEN ENDERECO=Mid(Trim(boleto.fields(4)),1,50) ELSE select case len(boleto.fields(4))case 8 ENDERECO=boleto.fields(4)&" "case 9 ENDERECO=boleto.fields(4)&" "case 10 ENDERECO=boleto.fields(4)&" "case 11 ENDERECO=boleto.fields(4)&" "case 12 ENDERECO=boleto.fields(4)&" "case 13 ENDERECO=boleto.fields(4)&" "case 14 ENDERECO=boleto.fields(4)&" "case 15 ENDERECO=boleto.fields(4)&" "case 16 ENDERECO=boleto.fields(4)&" "case 17 ENDERECO=boleto.fields(4)&" "case 18 ENDERECO=boleto.fields(4)&" "case 19 ENDERECO=boleto.fields(4)&" "case 20 ENDERECO=boleto.fields(4)&" "case 21 ENDERECO=boleto.fields(4)&" "case 22 ENDERECO=boleto.fields(4)&" "case 23 ENDERECO=boleto.fields(4)&" "case 24 ENDERECO=boleto.fields(4)&" "case 25 ENDERECO=boleto.fields(4)&" "case 26 ENDERECO=boleto.fields(4)&" "case 27 ENDERECO=boleto.fields(4)&" "case 28 ENDERECO=boleto.fields(4)&" "case 29 ENDERECO=boleto.fields(4)&" "case 30 ENDERECO=boleto.fields(4)&" "case 31 ENDERECO=boleto.fields(4)&" "case 32 ENDERECO=boleto.fields(4)&" "case 33 ENDERECO=boleto.fields(4)&" "case 34 ENDERECO=boleto.fields(4)&" "case 35 ENDERECO=boleto.fields(4)&" "case 36 ENDERECO=boleto.fields(4)&" "case 37 ENDERECO=boleto.fields(4)&" "case 38 ENDERECO=boleto.fields(4)&" "case 39 ENDERECO=boleto.fields(4)&" "case 40 ENDERECO=boleto.fields(4)&" "case 41 ENDERECO=boleto.fields(4)&" "case 42 ENDERECO=boleto.fields(4)&" "case 43 ENDERECO=boleto.fields(4)&" "case 44 ENDERECO=boleto.fields(4)&" "case 45 ENDERECO=boleto.fields(4)&" "case 46 ENDERECO=boleto.fields(4)&" "case 47 ENDERECO=boleto.fields(4)&" "case 48 ENDERECO=boleto.fields(4)&" "case 49 ENDERECO=boleto.fields(4)&" "case 50 ENDERECO=boleto.fields(4) end selectEND IF'***************************************************************IF len(boleto.fields(5))>25 THEN BAIRRO=Mid(Trim(boleto.fields(5)),1,25) ELSE select case len(boleto.fields(5))case 4 BAIRRO=boleto.fields(5)&" "case 5 BAIRRO=boleto.fields(5)&" "case 6 BAIRRO=boleto.fields(5)&" "case 7 BAIRRO=boleto.fields(5)&" "case 8 BAIRRO=boleto.fields(5)&" "case 9 BAIRRO=boleto.fields(5)&" "case 10 BAIRRO=boleto.fields(5)&" "case 11 BAIRRO=boleto.fields(5)&" "case 12 BAIRRO=boleto.fields(5)&" "case 13 BAIRRO=boleto.fields(5)&" "case 14 BAIRRO=boleto.fields(5)&" "case 15 BAIRRO=boleto.fields(5)&" "case 16 BAIRRO=boleto.fields(5)&" "case 17 BAIRRO=boleto.fields(5)&" "case 18 BAIRRO=boleto.fields(5)&" "case 19 BAIRRO=boleto.fields(5)&" "case 20 BAIRRO=boleto.fields(5)&" "case 21 BAIRRO=boleto.fields(5)&" "case 22 BAIRRO=boleto.fields(5)&" "case 23 BAIRRO=boleto.fields(5)&" "case 24 BAIRRO=boleto.fields(5)&" "case 25 BAIRRO=boleto.fields(5)end selectEND IF'***************************************************************IF len(boleto.fields(6))>30 THEN CIDADE=Mid(Trim(boleto.fields(6)),1,30) ELSE select case len(boleto.fields(6))case 4 CIDADE=boleto.fields(6)&" "case 5 CIDADE=boleto.fields(6)&" "case 6 CIDADE=boleto.fields(6)&" "case 7 CIDADE=boleto.fields(6)&" "case 8 CIDADE=boleto.fields(6)&" "case 9 CIDADE=boleto.fields(6)&" "case 10 CIDADE=boleto.fields(6)&" "case 11 CIDADE=boleto.fields(6)&" "case 12 CIDADE=boleto.fields(6)&" "case 13 CIDADE=boleto.fields(6)&" "case 14 CIDADE=boleto.fields(6)&" "case 15 CIDADE=boleto.fields(6)&" "case 16 CIDADE=boleto.fields(6)&" "case 17 CIDADE=boleto.fields(6)&" "case 18 CIDADE=boleto.fields(6)&" "case 19 CIDADE=boleto.fields(6)&" "case 20 CIDADE=boleto.fields(6)&" "case 21 CIDADE=boleto.fields(6)&" "case 22 CIDADE=boleto.fields(6)&" "case 23 CIDADE=boleto.fields(6)&" "case 24 CIDADE=boleto.fields(6)&" "case 25 CIDADE=boleto.fields(6)&" "case 26 CIDADE=boleto.fields(6)&" "case 27 CIDADE=boleto.fields(6)&" "case 28 CIDADE=boleto.fields(6)&" "case 29 CIDADE=boleto.fields(6)&" "case 30 CIDADE=boleto.fields(6)end selectEND IF'*************************************************************** select case len(boleto.fields(9))case 0 DDD=boleto.fields(9)&" "case 1 DDD=boleto.fields(9)&" "case 2 DDD=boleto.fields(9)&" "case 3 DDD=boleto.fields(9)&" "case 4 DDD=boleto.fields(9) end select '*************************************************************** Beneficiario=CODMATRIC&SEQFAM&NOME&SEXO&PARENTESCO&DATANASC& vbcrlf 'caracter Enter no vb Endereco=CODMATRIC&ENDERECO&BAIRRO&CIDADE&Trim(boleto.fields(8))&Trim(boleto.fields(7))&DDD&Trim(boleto.fields(10))& vbcrlf 'caracter Enter no vb boleto.MoveNext arquivo.write Beneficiario arquivo2.write Endereco Loop arquivo.closeset arquivo = nothingset fs = nothingarquivo2.closeset arquivo2 = nothingset fs2 = nothingboleto.closeset boleto= nothingconexao.closeset conexao = nothing%>

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.