thicomp Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 Pessoal, alguém sabe onde está o erro?[code/<%Dim Conn, rsSet Conn = Server.CreateObject("ADODB.Connection")' Set the Dbq portion of the string to the physical folder where your price files resideConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _"Dbq=F:\produto\conc;" & _"Extensions=asc,csv,tab,txt;" & _"Persist Security Info=False"Dim sqlsql = "SELECT * from teste.txt"'(implicit recordset creation through execute method)set rs = conn.execute(sql)Response.write "<Table><TR BGCOLOR=lightblue>"While Not rs.EOF'here we have stock price text file in format: Date High Low Close Volume'Response.Write "<TR bgcolor=lightblue><TD>" & rs(0) & "</TD><TD>" & rs(1) & "_</TD><TD>" & rs(2) & "</TD><TD>" & rs(3) & "</TD><TD> " & rs(4) & "</TD><TD>" & rs(5) & "</TD><TD>" & rs(6) & "</TD><TD>" & rs(7) & "</TD><TD>" & rs(8) & "</TD><TD>" & rs(9) & "</TD></TR>"rs.MoveNextWendResponse.write "</TABLE>"rs.closeset rs = nothingconn.closeset conn = nothing%>ADODB.Recordset error '800a0cc1' Item cannot be found in the collection corresponding to the requested name or ordinal. /produto/conc/teste4.asp, line 17Abçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 você esta dando um response.write de 10 campos do recordset. mas talvez essa sua tabela do txt tenha menos que 10 campos. abra o txt pra conferir. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Era isso mesmo cara... É que ele lê cada linha do txt, e não cada coluna dele.Preciso separar cada item de cada linha em celulas e fazer a ordenação dos valores (1ª célula de cada linha)Poderia me ajudar?Abçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 não entendi. o seu txt deve ter em todas as linhas todos os campos separados acho que por ponto e virgula ou por tabulacao. se você quer ordernar, não é so dar um order by na hora do select??ou você quer que necessariamente o txt fique ordenado?? nesse caso, você teria que fazer uma rotina com fso pra abrir esse txt, ler todas as linhas, colocar num array e fazer uma rotina pra por em ordem e gravar num segundo txt. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Então, eles estão separados por tabulação. Só que quando mando imprimir na tela, ele imprime uma linha como sendo uma só celula da tabela. Na questão da ordenação, eu preciso que ele imprima na tela os dados ordenados pela primeira coluna, independente se o txt estiver ou não, apesar de achar que se o txt já estiver ordenado ele vai exigir menos do servidor...Abçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 então, tavlez so funcione com ponto e virgula. acho que você teria que trocar tabulacao por ponto e virgula.agora ordenar acho que fica mais facil mesmo por order by no select.outra coisa, os campos da tabela tem nome?? se não tiver, ai não sei como fica o order by. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 beleza cara, defini um nome pra minha coluna e ele ordenou legal, agora só preciso fazer a separação da linha do txt por colunas, já que todas as informações estão um uma única célula.Caso você puder me ajudar, ficarei muito agradecido. Mas mesmo assim, obrigado pela paciênciaAbçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 o que você quer dizer com estao todos numa unica celula??tipo o txt está assim:1 XXXX YYYY e em de ficar:Campo 1 - "1" Campo 2 - "XXXX" Campo 3 - "YYYY" so que fica um unico campo: Campo 1 - "1 XXXX YYYY"é isso??se for, acho que é porque os campos devem ter que estar separado por ponto e virgula tipo assim:1;XXXX;YYYYnão sei se ele acessa txt com campos tabulados. acho que você teria que mudar a connectionstring.faca um teste com um txt separado por ponto e virgula e veja se é isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Cara, beleza, deucerto sim... Vou ter que modificar e separar os campos com ";".Valeu mesmo pela ajuda... Muito obrigadoAbçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Cara, só mais uma coisinha...você saberia me dizer o porque da data lida no txt aparece no formato americano, por exemplo:a data 4/8/2006 aparece 8/4/2006, sendo que no txt a data aparece certo...Abçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 ai o problema é a configuracao do windows do seu pc ou do seu servidor.pra não ter esse tipo de problemas, costumo usar uma funcao para formatar datas. tipo assim:Public Function FormataData(data) If Trim(data) <> "" Then If Not IsDate(data) Then FormataData = "Data inválida." Else FormataData = Right("00" & Day(data), 2) & "/" & Right("00"& Month(data), 2) & "/" & Year(data) End If Else FormataData = "" End IfEnd Function[/code] ai na hora de mostrar a data, em vez de fazer: [code]<% = rs("data") %> faco assim: <% = FormataData(rs("data")) %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Cara, a questão da data, como pode ser, se no meu arquivo txt a data está certa, mas quando o código é executado, ele altera para o padrão americano...O código ficou assim:<%session("int")session("prod")response.write "<table cellpadding=1 cellspacing=1 border=1 width=700>"response.write "<tr><td>Codigo<td>Data Abertura<td>Responsável<td>Produto<td>Etapa<td>Resumo/Descricao</td>"Dim Conn, rsSet Conn = Server.CreateObject("ADODB.Connection")' Set the Dbq portion of the string to the physical folder where your price files resideConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _"Dbq=F:\Produtos\"& session ("prod") &"\"& session("int") &"\conc;" & _"Extensions=asc,csv,tab,txt;" & _"Persist Security Info=false"Dim sqlsql = "SELECT * from "& session("int") &".txt order by Codigo"'(implicit recordset creation through execute method)set rs = conn.execute(sql)if cor ="#e2eedf" thencor = "#c4d4ee"elsecor ="#e2eedf"end ifWhile Not rs.EOFResponse.Write "<TR BGCOLOR="& cor &"><TD BGCOLOR="& cor &">" & rs(0) & "</TD>"Response.Write "<TD BGCOLOR="& cor &">" & rs(1) & "</TD>"Response.Write "<TD BGCOLOR="& cor &">" & rs(2) & "</TD>"Response.Write "<TD BGCOLOR="& cor &">" & rs(3) & "</TD>"Response.Write "<TD BGCOLOR="& cor &">" & rs(4) & "</TD>"Response.Write "<TD BGCOLOR="& cor &">" & rs(5) & "</TD>"rs.MoveNextWendResponse.write "</TABLE>"rs.closeset rs = nothingconn.closeset conn = nothing%>Lembrando que as informações do txt estão separadas por ";"Muito Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 bom, apesar do txt não ter configuracao nenhuma, o recordset interpretou o campo como do tipo data/hora.data é um tipo de informacao diferente de texto que fica armazenado na variavel, e não tem formato nenhum ate o momento que vai ser impressa, quando, pelo sistema operacional, ela ganha um formato. não importa qual o formato do texto que originou a data.escuta, faz o seguinte. so para testar tenta exibir uma data que não possa ser invertida. porque não sei se o erro é na hora de mostrar ou na hora de pegar do txt. tipo tenta uma data 13/05/2006. como não existe mês 13, se o problema for na hora de selecionar ele vai mostrar o formato correto. se for na hora de mostrar, ele vai inverter.pra corrigir isso, você teria que alterar a configuracao do windows. você esta fazendo local ou num servidor??mas independente da configuracao, isso se resolvia se você usasse a funcao FormataData que eu te passei. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 É cara, colocando um mês inexistente ele retorna a data correta definida no txt, ou seja 13/08/2006 e não 08/13/2006, como é o que vem acontecendo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 ai meu deus, então está foda...acho que ai é coisa do ADO já, ele sempre vai entender que esta no padrão americano, não sei se tem a ver com configuracao do sistema.o que você pode fazer é gravar sempre as datas no formato YYYY-MM-DD (com tracinhos mesmo no lugar das barras). mas se você já tem um txt pronto ai não sei como você poderia fazer... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 4, 2006 Autor Denunciar Share Postado Agosto 4, 2006 Cara, deu certoUtilizando a function de formata data, as datas agora aparecem corretas...Muito Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 ou da uma olhada aqui, vê se ajuda: http://scriptbrasil.com.br/forum/index.php?showtopic=82337EDITADO:vixe, postei antes de ver que você também tinha postado. bom que deu certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 9, 2006 Autor Denunciar Share Postado Agosto 9, 2006 Caro KuroiEstou com um problema...No meu txt há duas colunas que são de valores numéricos, mas haverá situações em que precisarei entrar também com letras, pontos e vírgulas (estes últimos em caso de números decimais).Quando faço a leitura destes campos, mesmo eles tendo conteúdos, no txt, diferentes de números, ele não consegue chamar estes campos, só chama mesmo os campos numéricos, e no caso de numeros com "." ou com ",", ele lê só a parte numérica. Se eu colocar um caracter normal em cada campo, aí sim ele faz a leitura.Tem como eu definir o tipo de valores destes campos??Saberia responder a estas dúvidas?Agradeço pela atençãoAbçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 9, 2006 Denunciar Share Postado Agosto 9, 2006 pra separa casas decimais, você usa virgula ou usa ponto. tenta pra ver qual dos dois ele aceita, mas o certo seria não separar milhares. exemplo, não grave 1.999,70 e sim 1999,70 ou 1999.70mas se você digitar letra em qualquer um dos campos, acredito que ele sera interpretado como campo texto, porque você tem que escrever letra?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thicomp Postado Agosto 9, 2006 Autor Denunciar Share Postado Agosto 9, 2006 Caso não haja valores para carregar a célula da tabela, pra não deixá-la em branco, colocar algo do tipo N/D.Abçs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 9, 2006 Denunciar Share Postado Agosto 9, 2006 a nesse caso, deixa em branco o poe 0. porque se é numerico não precisa entrar numero. se você precisar mostra N/D depois no ASP, faz isso via programacao. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
thicomp
Pessoal, alguém sabe onde está o erro?
[code/<%
Dim Conn, rs
Set Conn = Server.CreateObject("ADODB.Connection")
' Set the Dbq portion of the string to the physical folder where your price files reside
Conn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=F:\produto\conc;" & _
"Extensions=asc,csv,tab,txt;" & _
"Persist Security Info=False"
Dim sql
sql = "SELECT * from teste.txt"
'(implicit recordset creation through execute method)
set rs = conn.execute(sql)
Response.write "<Table><TR BGCOLOR=lightblue>"
While Not rs.EOF
'here we have stock price text file in format: Date High Low Close Volume'
Response.Write "<TR bgcolor=lightblue><TD>" & rs(0) & "</TD><TD>" & rs(1) & "_</TD><TD>" & rs(2) & "</TD><TD>" & rs(3) & "</TD><TD> " & rs(4) & "</TD><TD>" & rs(5) & "</TD><TD>" & rs(6) & "</TD><TD>" & rs(7) & "</TD><TD>" & rs(8) & "</TD><TD>" & rs(9) & "</TD></TR>"
rs.MoveNext
Wend
Response.write "</TABLE>"
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/produto/conc/teste4.asp, line 17
Abçs
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.