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

Erro Em Código


thicomp

Pergunta

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

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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ência

Abçs

Link para o comentário
Compartilhar em outros sites

  • 0

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;YYYY

nã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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 If
End Function[/code] ai na hora de mostrar a data, em vez de fazer:
[code]<% = rs("data") %>
faco assim:
<% = FormataData(rs("data")) %>

Link para o comentário
Compartilhar em outros sites

  • 0

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, 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:\Produtos\"& session ("prod") &"\"& session("int") &"\conc;" & _

"Extensions=asc,csv,tab,txt;" & _

"Persist Security Info=false"

Dim sql

sql = "SELECT * from "& session("int") &".txt order by Codigo"

'(implicit recordset creation through execute method)

set rs = conn.execute(sql)

if cor ="#e2eedf" then

cor = "#c4d4ee"

else

cor ="#e2eedf"

end if

While Not rs.EOF

Response.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.MoveNext

Wend

Response.write "</TABLE>"

rs.close

set rs = nothing

conn.close

set conn = nothing

%>

Lembrando que as informações do txt estão separadas por ";"

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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...

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Kuroi

Estou 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ção

Abçs

Link para o comentário
Compartilhar em outros sites

  • 0

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.70

mas se você digitar letra em qualquer um dos campos, acredito que ele sera interpretado como campo texto, porque você tem que escrever letra??

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...